美文网首页
HTTP笔记

HTTP笔记

作者: carolwhite | 来源:发表于2017-08-02 00:13 被阅读9次

    通信传输流

    Screen Shot 2017-08-01 at 4.33.21 PM.png

    HTTP报文

    • HTTP报文:用于HTTP协议交互的信息。请求端的HTTP报文叫做请求报文,相应端的叫做响应报文。大致分为报文首部和报文主体两块,两者由空行(CR+LF)划分,通常并不一定有报文主体。
    Screen Shot 2017-08-01 at 9.53.45 AM.png
    Screen Shot 2017-08-01 at 9.56.04 AM.png
    • 请求行:包含用于请求的方法,请求URI和HTTP版本。
    • 状态行:包含表明响应结果的状态码,原因短语和HTTP版本。
    • 首部字段:包含表示请求和响应的各种条件和属性的各类首部。


      Screen Shot 2017-08-01 at 10.01.50 AM.png

    报文主体和实体主体的差异

    Screen Shot 2017-08-01 at 10.15.02 AM.png

    HTTP状态返回码

    Screen Shot 2017-08-01 at 1.49.51 PM.png

    HTTP首部字段

    Screen Shot 2017-08-01 at 4.07.50 PM.png Screen Shot 2017-08-01 at 4.07.56 PM.png
    首部字段类型

    首部字段根据实际用途分为以下4类。
    1.通用首部字段:请求报文和响应报文都会使用的首部。
    2.请求首部字段:从客户端向服务器发送请求报文时使用的首部。补充了请求的附加内容,客户端信息,响应内容相关优先级信息。
    3.响应首部字段:从服务端向客服端返回响应报文时使用的首部。补充了响应的附加信息,也会要求客户端附加额外的内容信息。
    4.实体首部字段:针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等与实体有关的信息。

    首部字段结构

    HTTP首部字段是由首部字段名和字段值组成,中间由冒号“:”分割。

    首部字段名:字段值
    Content-Type: text/html
    Keep-Alive: timeout =15, max  = 100
    
    HTTP首部字段一览
    • 通用首部字段


      Screen Shot 2017-08-01 at 4.15.08 PM.png
    • 请求首部字段

    Screen Shot 2017-08-01 at 4.16.28 PM.png
    • 响应首部字段
    Screen Shot 2017-08-01 at 4.16.54 PM.png
    • 实体首部字段
    Screen Shot 2017-08-01 at 4.17.28 PM.png
    通用首部字段
    1.Cache-control:控制缓存的行为

    缓存请求指令

    ![Screen Shot 2017-08-01 at 4.42.47 PM.png](https://img.haomeiwen.com/i1485048/59b5b6d97c710f66.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    缓存响应指令

    Screen Shot 2017-08-01 at 4.42.47 PM.png
    2.Conection:控制不再转发给代理的首部字段,管理持久连接。
    • 控制不再转发给代理的首部字段
    Connection:不再转发的首部字段名
    
    • 管理持久连接
    Connection: close  # HTTP/1.1以后都是持久连接
    Conntection: Keep-Alive # HTTP/1.1之前的都是非持续连接
    
    3.Prama:为了兼容HTTP /1.1之前版本的历史遗留问题

    该字段,只用在客户端发送的请求中,客户要求所有的中间服务器不返回缓存的资源。

    Cache-Control: no-cache  #一般会有2个首部字段
    Prama: no-cache
    
    4.Upgrade:用于检测HTTP协议及其他协议是否可使用更高的版本通信,其参数值可以用来指定一个完全不同的通信协议。
    Screen Shot 2017-08-02 at 12.09.28 AM.png

    Upgrade首部字段产生作用的Upgrade对象仅限于客户端和邻接服务器之间。因此使用首部字段Upgrate时还需要额外指定Connection:Upgrate
    对于附有首部字段Upgrate的请求,服务器可用101SwitchingProtocal状态码作为响应返回。

    5.Waring:通知用户一些与缓存的相关的问题的警告。
    Screen Shot 2017-08-02 at 12.22.39 AM.png Screen Shot 2017-08-02 at 12.23.07 AM.png Screen Shot 2017-08-02 at 12.23.32 AM.png
    请求首部字段
    1.Accept:通知服务器,用户能够处理的媒体类型及媒体类型的相对优先级。使用type/subtype形式。
    Screen Shot 2017-08-02 at 1.16.31 PM.png

    若要设置优先级,用q=来额外表示权重值, q范围为0~1,";"隔开

    Accept:text/html ;q = 0.5, text/plain
    
    2.Host:若虚拟主机运行在同一个IP,因此会使用Host加以区分。首部字段Host会告知服务器,请求的资源所处的互联网主机名和端口号。
    3.Range:告知服务器资源的指定范围
    Range: bytes =5001 -10000
    

    接受到附带Range首部字段请求的服务器,会在处理请求之后返回状态206Partial Content的响应。无法处理该范围请求时,则返回状态码200OK的响应全部资源。

    响应首部字段
    1.ETag:能告诉客户端实体标识。是一种可将资源以字符串形式做唯一标识的方式。服务器会为每份资源分配对应的Tag值。
    2.Location:可以将响应接受方引导至某个与请求URL位置不同的资源。该字段基本配合3xx:Redirection响应,提供重定向的URL。
    3.Vary:当代理服务器收到带有Vary首部字段指定获取资源的请求时,如果使用的Accept-Language字段的值相同,那么久直接从缓存返回响应。反正,需要从 源服务器端获取资源后才能作为响应返回 。
    Vary:Accept-Language
    
    4.Age
    Screen Shot 2017-08-03 at 8.42.19 AM.png

    相关文章

      网友评论

          本文标题:HTTP笔记

          本文链接:https://www.haomeiwen.com/subject/knadlxtx.html