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
浏览器访问缓存流程
![](https://img.haomeiwen.com/i16660341/926488a9aa3dce44.png)
消化版
![](https://img.haomeiwen.com/i16660341/007221c6e40a2417.png)
原版
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
网友评论