跳到主要内容

http特性

· 阅读需 3 分钟

缓存头的含义

可缓存性

public: 在http经过的任何地方(包括代理服务器)都可缓存

private: 发起请求http请求的浏览器

no-cache 任何节点都不缓存,但是要去服务器验证后才能重新请求

到期

max-age 缓存多长时间(秒)到期

s-maxage 在代理服务器端才有作用 max-stale 过期后,在max-stale的期限内使用过期的缓存,服务端无效,在发起端用

重新验证

must-revadate 设置max-age,过期后,在(原)服务端重新发起请求,再验证缓存是否真的过期 proxy-validate 用在缓存服务器中,过期后先去缓存服务器中请求,再验证缓存

其他

no-store 完全不缓存

no-transform 告知代理服务器,不要更改缓存端内容,比如不允许压缩

防止服务端文件更新后,客户端还继续有缓存,修改文件名hash码

缓存验证

last-Modified 上次修改时间

配合if-Moified-Since 或者if-Unmodified-Since使用,对比上次修改时间,验证资源是否需要更新

etag 数据签名 配合if-Match或者if-Non-Match使用,对比资源签名是否一致

服务端当前判断etag为本次的etag,当需要发布新资源时,修改判断的etag值即可。客户请求过来时是上次的etag值,经过服务端判断后,校验是旧的etag。就会返回新的资源

CSP

限制资源获取,报告资源获取越权

限制方式 Default-src 限制全局 制定资源类型 connect-src img-src style-src script-src font-src等

限制加载

'Content-Security-Policy': 'default-src \'self\' http: https:'

default-src禁用类型,默认所有的src类型限制src路经,可配置白名单,自己的服务器self,或者http,https的路径才允许使用。不允许插入的script标签js代码直接执行,防止xss攻击

添加一个参数 可进行一个上报申请,发送一个请求

'Content-Security-Policy': 'default-src \'self\' http: https:; report-uri /report'

允许加载,只做report的处理

'Content-Security-Policy-Report-Only': 'default-src \'self\' http: https:; report-uri /report'

在html中使用 <meta http-equiv="Content-Security-Policy" content="script-src ‘self';">不可使用report上报的方式