一.缓存
(1).缓存
把已请求并返回的WEB资源(HTML页面,图片,js文件,css文件,数据等)复制成一个副本存储在浏览器的缓存中
(2).Pragma:no-cache(响应头)
指示浏览器忽略资源缓存副本(该缓存还是缓存),每次访问需要到服务器获取
http1.0中字段,http1.1用Cache-Control替代(http协议向下兼容,所以很多网站依旧有这个字段)
(3).Cache-Control缓存控制(响应头)
指示浏览器忽略资源缓存副本,强制到服务器获取资源(浏览器依然缓存)
表示响应可以被任何对象(包括:发送请求的客户端,代理服务器,等等)缓存
表明响应只能被单个用户缓存,不能作为共享缓存(即代理服务器不能缓存它)
(4).Expires:Mon,15Aug 2016 03:56:47 GMT(Cache-control优先)
启用缓存和定义缓存时间。告诉浏览器资源缓存过期时间,如果还没过该时间点则不发请求
在HTTP1.1版开始,使用Cache-Control:max-age=秒替代
(5).浏览器缓存步骤图示
![](https://img-blog.csdnimg.cn/20201124101511321.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1llc3RlcmRheV9Ub21vcnJvdw==,size_16,color_FFFFFF,t_70)
服务端返回一个Etag-lastmodified 客户端再发送一个if-None-Match/if-modified-since
客户端的if-none-match是服务端返回的Etag,服务端验证Etag相等,再验证是否修改,是响应200还是304
二.长短连接
(1).Connection:Keep-alive
后期的http1.0在请求头增加Connection:keep-alive
http1.1默认开启 Connection-keep:keep-alive 如需关闭: Connection:close
注意:Connection:keep-alive在大多数浏览器中都默认使用HTTP/1.1服务器也须由相应的支持才能达成C/S协议进行长连接
三.Content-Length
表单提交-view source - request headers - contentlength
服务器返回123456-response headers-contentlength
请求头和响应头都有,请求头中的长度是formData的长度a=1&b=2
四.referrer
来源域名,referrer是request header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的
google搜索腾讯课堂->打卡查看请求头中的Referer->https://www.google.com
可通过Referer分析不同渠道的流量分布,用户搜索的关键词
<meta name="referrer" content="no-referrer">
<meta name="referrer" content="origin">
Referer:http://localhost/
Referrer Policy:no-referrer-when-downgrade
仅当协议降级(如HTTPS页面引入HTTP资源)时不发送Referer信息。是大部分的浏览器默认策略
Referer:http://localhost/network/class5/