请求与响应的上下文

HTTP请求与响应都有一些表示上下文的常用的头部,所谓上下文就是请求从哪里来,请求或者响应对后续的请求与响应产生哪些影响。

请求的上下文:User-Agent

指明客户端的类型信息,服务器可以据此对资源的表述做抉择

User-Agent = product *( RWS ( product / comment ))

  • product = token [ "/" product-version ]
  • RWS = 1*( SP / HTAB)

例如:有对Mozilla的支持信息、客户端电脑系统版本、浏览器的渲染引擎信息、浏览器版本等信息

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36
请求的上下文:Referer
浏览器对来自某一个页面的请求会自动添加头部,如果非浏览器不一定添加头部。例如,在我的博客中添加的链接,点击这个链接抓取到的请求报文中就会有Referer 。
  • Referer = absolute-URI / partial-URI
  • 例如:Referer: https://www.cnblogs.com/
Referer 不会被添加的场景
  • 来源页面采用的协议为表示本地的文件的 "file" 或 "data" URI
  • 当前请求页面采用的时 http 协议,而来源页面采用的时 https 协议

服务器端常用于统计分析、缓存分析、防盗链等功能

请求的上下文:From

  • 主要用于网络爬虫,告诉服务器如何通过邮件联系到爬虫的负责人
  • From = mailbox
  • 例如:From:webmaster@example.org

响应中的上下文:Server

  • 指明服务器端上所使用的软件信息,用于帮助客户端定位问题或者统计数据
  • Server = product *( product / comment )
  • product = token [ "/" product-version ]

例如:

  • Server: nginx
  • Server: openresty/ 1.13.6.2

响应中的上下文:Allow 与 Accept-Ranges

Allow:告诉客户端,服务器告诉客户端该 URI 对应的资源允许哪些方法的执行

  • Allow = #method
  • 例如:Allow: GET,HEAD,PUT 

Accept-Ranges:告诉客户端服务器上的资源是否允许 range 请求

  • Accept-Ranges = acceptable-ranges

例如:

  • Accept-Ranges:bytes     
  • Accept-Ranges:none
posted @ 2019-06-02 19:55  冯小圆  阅读(412)  评论(0编辑  收藏  举报