http协议-重要的头

请求头中

     Cache-Control : no-cache表示浏览器不想读缓存,并不是说没有缓存。

      //不理会缓存协商,全部重新获取.此时请求中的Cache-Control值为no-cache 

     请求头里就有这个no-cache,也就是跳过强缓存和协商缓存阶段,直接请求服务器返回200。

     Response Header:

  1. Cache-Control:
    max-age=315360000
  2. Connection:
    Keep-Alive
  3. Content-Length:
    995
  4. Content-Type:
    image/png
  5. Date:
    Tue, 30 Jan 2018 11:30:17 GMT
  6. Etag:
    "3e3-5121a5705c980"
  7. Expires:
    Fri, 28 Jan 2028 11:30:17 GMT
  8. Last-Modified:
    Wed, 25 Mar 2015 10:27:02 GMT
  1. 浏览器请求
  2. |
  3. 无缓存
  4. |
  5. 向Web服务器请求
  6. |
  7. 请求响应,缓存协商
  8. |
  9. 呈现
  10. 根据Cache-Control和Expires来是否缓存,获取缓存时间,然后根据ETag、Last-Modified
  11. 再次请求
  12. 有缓存,是否过期,如果Expires没有过期,直接从本地缓存读取,不发请求
  13. 从响应头中获取ETag和Last-Modified的字段值,
  14. 发送请求是分别作为If-None-Match:V(ETag),If-Modified-Since:V(Last-Modified),服务器决策
  15. 有更新,从服务器读取,返回200
  16. 无更新,返回304,Body部分为空。

如果请求头部分没有If-None-Match:V(ETag)和If-Modified-Since:V(Last-Modified)的值,直接向web服务发送请求响应200! 

错误码406谈起:

406 Not Acceptable 状态码表示客户端错误,表示请求的资源的内容特性无法满足请求头中的条件,

因而无法生成响应实体。 译自HTTP协议规范RFC文档 !得知,如果请求头的 Accept 不符合事先约定的契约,就会返回406错误。报错的是 API 服务,返回的是 application/json 格式的数据, 然而请求中的 Accept 说明它并不支持这种格式,所以会报出406错误。我们仔细检查了常见浏览器发送的请求,发现全部都包含 Accept: */* ;。看来,这些引发406的请求并不是普通用户发出来的。那么,究竟是谁发出了这些请求呢?

排查:

大概有两种可能:1、原始请求头部的Accept 字段就是错的;

                           2、原始请求头部的 Accept 字段是对的,但是在经过 CDN 节点的时候被 CDN 篡改了。由于以前遇到过                                        CDN  篡改头部的问题,我们初步判断是 CDN 的问题。

接下来,我们将北京联通的节点暂时回源,验证是不是 CDN 篡改了头部,同时也拿到了最终的用户 IP。 上网搜索这个IP详细的信息,上面赫然写着某搜索引擎的爬虫。原来,406并不是来自于普通用户,而是搜索引擎的爬虫。

Accept:header中用它来告知客户端可以处理的内容类型,这种内容类型用MIME类型来表示
内容类型  示例中,application的是类型,json是子类型。它说明,客户端只能够接收application/json这种类型的响应。如果服务端不能返回这种类型的响应,服务端应当返回406错误。text/html,application/xhtml+xml,application/xml 都是 MIME 类型,也可以称为媒体类型和内容类型。
因子权重(q)

q是一个0-1之间的数值, q的默认值是1, q=0代表不可接受,q 值越大,请求越倾向于获得其“;”之前的类型表示的内容


请求头
  Accept: 浏览器可接受的MIME类型。
eg  
  Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
  Content-Length:表示请求消息正文的长度
  Connection:keep-alive
  Keep-Alive: timeout=5, max=100
 timeout:过期时间5秒(对应httpd.conf里的参数是:KeepAliveTimeout),max是最多一百次请求,强制断掉连接


   Content-Disposition:attachment;filename=MyExcel.xls

   断点续传
   Range:bytes=1-100

   响应头
   HTTP/1.1 206  OK
   Accept-Range:bytes
   Content-Lenght:2222
   Content-Range:bytes 0-100/2350














评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值