zoukankan      html  css  js  c++  java
  • http协议

    http基本格式

    • 请求报文:请求行(请求方法,请求url,http版本),消息报头(报文首部[请求行,请求首部字段{Accept,Accept-Language,Authorization,Cookie,Host,Referer,User-Agent},通用首部字段{Connect,Date,Transfer-Encoding,Update,Via,Cache-Control},实体首部字段{字段名和字段值组成,中间通过:分隔}],空行,报文主体),请求内容。

    • 响应报文:状态行(http版本,状态码,原因语句),消息报文(报文首部[状态行,响应首部字段{Age,Set-Cookie,Server,Retry-after,Refresh},通用首部字段,实体首部字段{Allow,Content-Location,Content-Encoding,Content-Length,Content-MD5,Content-Type}{字段名和字段值组成,中间通过:分隔}],空行,报文主体),响应内容。

    找到一个思维导图,如下:

    高清链接

    HTTP的304

    当客户端缓存了资源但是不确定是否是最新版本的时候,就会发送一个条件请求。客户端请求头重会有一个If-Modified-Since字段,值为服务器上次返回的Last-Modified响应头中的日期值,或If-None-Match请求头,值为服务器上次返回的ETag响应头的值。
    服务器会读取到这两个请求头中的值,判断出客户端缓存的资源是否是最新的,如果是的话,服务器就会返回HTTP/304 Not Modified响应,但没有响应体.客户端收到304响应后,就会从缓存中读取对应的资源.

    HTTP/1.1 304 Not Modified
    Date: Wed, 20 Sep 2017 02:55:00 GMT
    ETag: W/"4e5-Zg3sHPCCzRN/HV5jc1sXjQ"
    Server: openresty
    X-Proxy-Latency: 0
    
    GET /hello HTTP/1.1
    Host: wyc.com
    Connection: keep-alive
    Cache-Control: max-age=0
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
    Accept-Encoding: gzip, deflate, br
    Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
    If-None-Match: W/"4e5-Zg3sHPCCzRN/HV5jc1sXjQ"
    
  • 相关阅读:
    ios NSFileHandle
    ios NSString crash
    触摸方法
    代理中方法
    初始化时加载的方法
    [leetCode]209. 长度最小的子数组
    [leetCode]669. 修剪二叉搜索树
    [leetCode]763. 划分字母区间
    7.Jedis
    6.Redis事务(乐观锁)
  • 原文地址:https://www.cnblogs.com/mentalidade/p/7058249.html
Copyright © 2011-2022 走看看