http header 
Cache-Control 
Cache-Control 通用消息头字段,被用于在 http 请求和响应中,通过指定指令来实现缓存机制
 缓存指令是单向的,这意味着在请求中设置的指令,不一定被包含在响应中
缓存请求指令
Cache-Control: max-age=<seconds>     # 告知服务器在该时间内可以使用缓存的响应,而无需再次发送请求
Cache-Control: max-stale[=<seconds>]
Cache-Control: min-fresh=<seconds>
Cache-control: no-cache      # 指示服务器不要返回缓存的响应,而要求始终返回最新的内容
Cache-control: no-store      # 指示服务器不要缓存任何内容,包括请求和响应
Cache-control: no-transform
Cache-control: only-if-cachedCache-Control: max-age=<seconds>     # 告知服务器在该时间内可以使用缓存的响应,而无需再次发送请求
Cache-Control: max-stale[=<seconds>]
Cache-Control: min-fresh=<seconds>
Cache-control: no-cache      # 指示服务器不要返回缓存的响应,而要求始终返回最新的内容
Cache-control: no-store      # 指示服务器不要缓存任何内容,包括请求和响应
Cache-control: no-transform
Cache-control: only-if-cached缓存响应指令
 服务器可以控制缓存的行为,指示客户端和中间代理服务器如何处理响应的缓存
Cache-control: must-revalidate
Cache-control: no-cache
Cache-control: no-store
Cache-control: no-transform
Cache-control: public       # 指示响应可以被任何缓存(包括客户端和代理服务器)缓存
Cache-control: private      # 指示响应只能被客户端缓存,不能被中间代理服务器缓存
Cache-control: proxy-revalidate
Cache-Control: max-age=<seconds>  # 客户端和中间代理服务器可以根据该值来决定响应的缓存有效期
Cache-control: s-maxage=<seconds>Cache-control: must-revalidate
Cache-control: no-cache
Cache-control: no-store
Cache-control: no-transform
Cache-control: public       # 指示响应可以被任何缓存(包括客户端和代理服务器)缓存
Cache-control: private      # 指示响应只能被客户端缓存,不能被中间代理服务器缓存
Cache-control: proxy-revalidate
Cache-Control: max-age=<seconds>  # 客户端和中间代理服务器可以根据该值来决定响应的缓存有效期
Cache-control: s-maxage=<seconds>Date 
响应创建的日期和时间
Date: Wed, 21 Oct 2015 07:28:00 GMTDate: Wed, 21 Oct 2015 07:28:00 GMT启发式缓存 利用 Date Last-Modified 计算缓存时间
Age 
Age 响应头里包含对象在缓存代理中存贮的时长,以秒为单位
Age: 24Age: 24响应是24秒前从原始服务器获取
基于 age 的缓存策略 通过 Age 与 Cache-Control: max-age 对比缓存是否新鲜
Last-Modified 
Last-Modified 包含源头服务器认定的资源做出修改的日期及时间
验证响应 通常与 If-Modified-Since 被用作一个验证器来判断接收到的或者存储的资源是否彼此一致
ETag 
资源的特定版本的标识符,资源变化 ETag 必定变化
ETag: W/"276f7dbce2395416275a0f05181ff7be"ETag: W/"276f7dbce2395416275a0f05181ff7be"验证响应 通常与 请求头 If-None-Match 比较资源是否变化
Access-Control-Allow-Origin 
响应的资源是否被允许与给定的来源(origin)共享
Access-Control-Allow-Origin: *        # 服务器会以“*”作为通配符,允许任意来源的请求都具有访问资源的权限
Access-Control-Allow-Origin: <origin> # 指定一个来源(只能指定一个)Access-Control-Allow-Origin: *        # 服务器会以“*”作为通配符,允许任意来源的请求都具有访问资源的权限
Access-Control-Allow-Origin: <origin> # 指定一个来源(只能指定一个)服务器允许多个源访问资源,需要在响应中动态设置响应头 Access-Control-Allow-Origin 指定当前请求的 origin
Authorization 
请求头用于提供服务器验证用户代理身份的凭据,允许访问受保护的资源
 通过Authorization 访问的资源需要缓存时,Cache-Control 必须设置 public
Content-Type 
text/plain
text/html
text/css
image/jpeg
audio/mp4
multipart/data-form
application/json
application/x-www-form-urlencoded
...text/plain
text/html
text/css
image/jpeg
audio/mp4
multipart/data-form
application/json
application/x-www-form-urlencoded
...查询更多的 MIME Type
Provisional headers are shown 
请求被插件(AdBlock、AdGuard)拦截 
Referer 
表示当前请求的来源页面的 URL,它告诉服务器在哪个页面上的请求,从而引发了当前请求
使用场景
- 链接跟踪和分析:网站分析工具可以使用 "Referer" 字段来了解访问者从哪个页面链接过来的,以及不同页面之间的转换和流量来源情况
- 防止跨站请求伪造(CSRF)攻击:服务器可以使用 "Referer" 字段来验证请求是否来自于期望的来源页面,从而防止恶意网站伪造请求
- 内容引用和嵌入:某些情况下,服务器可以使用 "Referer" 字段来判断页面上嵌入的资源(如图片、样式表、脚本等)的引用来