zoukankan      html  css  js  c++  java
  • 对http协议的理解

    http协议是应用层的一种协议,貌似发展到现在已经有24年了,在自己的日常工作和生活中一直离不开internet,也就和http协议密不可分,但是却么有深入了解过,今天google了一下,总结下自己的理解。

    jessonlv-吕国栋原创文章,转载请注明出处:http://blog.csdn.net/jessonlv

    http协议应该说有以下几个主要的特点:

    1、支持客户端/服务器模式

    2、简单快速:之所以简单,是因为,http协议每次向服务器端发送请求时,只传送请求方法和路径,请求方法一般有POST、GET、HEAD,每种方法体现了客户端与服务器端的联系方式不同。进而由于http协议很简单,所以其体积比较小,通信速度很快。

    3、灵活:http运行传送任意类型的数据,数据由Content-Type来标记。

    4、无连接:无连接的意思是,http每次链接只处理一个请求,当请求完毕时,就关闭这个链接。

    5、无状态:无状态是指协议对事务处理没有记忆能力,这就意味着如果后续处理需要前面的信息,那个这个链接必须重新请求,这就造成了信息传输量的增加,不过另一方面如果后续处理不需要前面的信息的话,那么这个请求速度就会很快。


    http请求由三部分组成:请求行、消息报头、请求正文

    请求行的一般格式如下:Method Request-URI HTTP-Version CRLF,其中 Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。


    请求方法(所有方法全为大写)有多种,各个方法的解释如下:
    GET     请求获取Request-URI所标识的资源
    POST    在Request-URI所标识的资源后附加新的数据
    HEAD    请求获取由Request-URI所标识的资源的响应消息报头
    PUT     请求服务器存储一个资源,并用Request-URI作为其标识
    DELETE  请求服务器删除Request-URI所标识的资源
    TRACE   请求服务器回送收到的请求信息,主要用于测试或诊断
    CONNECT 保留将来使用
    OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求

    http响应也由三部分组成:状态行,消息报头,响应正文

    状态行格式如下:
    HTTP-Version Status-Code Reason-Phrase CRLF
    其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。
    状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:
    1xx:指示信息--表示请求已接收,继续处理
    2xx:成功--表示请求已被成功接收、理解、接受
    3xx:重定向--要完成请求必须进行更进一步的操作
    4xx:客户端错误--请求有语法错误或请求无法实现
    5xx:服务器端错误--服务器未能实现合法的请求


    常见状态代码、状态描述、说明:
    200 OK      //客户端请求成功
    400 Bad Request  //客户端请求有语法错误,不能被服务器所理解
    401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 
    403 Forbidden  //服务器收到请求,但是拒绝提供服务
    404 Not Found  //请求资源不存在,eg:输入了错误的URL
    500 Internal Server Error //服务器发生不可预期的错误
    503 Server Unavailable  //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
    eg:HTTP/1.1 200 OK (CRLF)


  • 相关阅读:
    来自Jakob Jenkov的Jackson教程
    Linux查看某个端口的连接数
    Linux查看某个进程的线程
    Jackson反序列JSON为实体对象出现:no String-argument constructor/factory method to deserialize from String value的问题
    软路由OpenWrt教程收集(插件开发教程,opkg安装软件教程)
    软路由系统收集
    Linux防止“rm -rf /”误删除
    Mac 10.12原生方法对NTFS分区进行读写的配置
    Linux下进行Web服务器压力(并发)测试工具http_load、webbench、ab、Siege、autobench简单使用教程(转)
    微服务实施Spring Boot/Spring Cloud中踩过的坑(转)
  • 原文地址:https://www.cnblogs.com/jessonlv/p/4387994.html
Copyright © 2011-2022 走看看