美文网首页
25.4、缓存、长短连接、Content-Length、refe

25.4、缓存、长短连接、Content-Length、refe

作者: 一土二月鸟 | 来源:发表于2020-06-30 12:59 被阅读0次

浏览器缓存

  • Cache-control (响应头) 优先级最高
    • no-cache: 指示浏览器要先走协商缓存。
    • no-store:指示浏览器不要缓存此资源,到服务器获取最新资源
    • max-age=100:告知浏览器缓存此资源,此缓存的有效时长为100秒。该时长以请求到服务器的开始时间进行计算。
    • public:代表资源可以被任何对象缓存。包括代理服务器、客户端等。
    • private:代表资源仅能被客户端缓存,无法缓存的代理服务器等对象上。
  • Pragma:no-cache(响应头)
    • 告知浏览器忽略浏览器的缓存,到服务器重新获取资源
    • 该报文属于http1.0的,优先级低于Cache-control
  • Expires:date time GMT
    • 代表资源失效的具体时间,此时间为格林威治时间,东八区需要+8小时。
    • 此报文头属于http1.0,优先级低于cache-control

浏览器访问缓存流程

消化版
原版

Connection: keep-alive

  • 代表长连接,出现在请求头中。http1.1默认使用keep-alive,如果要关闭需要使用Connection:close。目前大多数浏览器默认使用http1.1。
  • http1.0早期只有短连接(每次http请求,都需要建立tcp连接),后期可以手动配置Connection:keep-alive。
  • 对于http1.1的长连接,服务器也要相应的支持才可以起效果。

content-length

  • 代表消息体(报文体)的长度
  • 如果是get请求,content-length只出现在response-header中
  • 如果是post请求,content-length出现在request-header和response-header中
  • 长度为实际a=adf&b=dfasf原消息体的长度,而非浏览器格式化后的长度

referer (request-header)

  • 通过在html(A页面)的head中,设置<meta name="referrer" content="origin || no-referrer"/> ,可以在跳转后的页面(B页面)的request-header中,看到referer(此名字为早起http协议的bug,考虑到兼容性,后来被一直延用)显示来源网站为A页面。
  • origin:显示来源网站的域名
  • no-referrer:什么都不显示
  • 不设置该meta:显示来源网站的完整路径
  • general 报文中,referrer policy:no-referrer-when-downgrade的意思是当从https的网站进入到http的网站时,不会显示referer信息。
防盗链(图片、视频等资源)
  • referrer 服务器通过referrer判断是否为白名单网站
  • 服务器通过密钥参数判断是否为可靠的来源请求

相关文章

网友评论

      本文标题:25.4、缓存、长短连接、Content-Length、refe

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