阳朔县建设规划局网站,如何检测网站是否安全,哈尔滨建设部网站,网络热词2021此篇抽自本人之前的文章#xff1a;http面试题整理 。 别急着跳转#xff0c;先把缓存知识学会了~
http中的缓存分为两种#xff1a;强缓存、协商缓存。 强缓存 响应头中的 status 是 200#xff0c;相关字段有expires#xff08;http1.0#xff09;,cache-control…此篇抽自本人之前的文章http面试题整理 。 别急着跳转先把缓存知识学会了~
http中的缓存分为两种强缓存、协商缓存。 强缓存 响应头中的 status 是 200相关字段有expireshttp1.0,cache-controlhttp1.1)两者同时出现时 cache-control 优先级更高。主要是利用 cache-control 的max-age值来进行判断。 浏览器再次请求服务器时浏览器会先判断max-age如果到期则直接请求服务器否则直接从缓存中读取。 响应头的字段如图所示 协商缓存 响应头中的 status 是 304相关字段有 Etag / If-No-MatchLast-Modified / If-Modified-Since。 1 服务器的 ETag 和 浏览器的 If-None-Match 对应 Etag服务器: 上次加载时服务器的 response header 返回的 If-No-Match浏览器 浏览器请求时的 request header 里的取的是 Etag 的值。 如果服务器为请求的资源确定的 ETag 标头的值与浏览器请求中的 If-None-Match 值相同则服务器将返回 304 Not Modified。表示资源文件没有发生改变命中协商缓存。 服务器优先考虑Etag。 Etag 与 Last-Modifed 均是服务器的响应头返回的如图所示 2 服务器的 Last-Modified 和 浏览器请求的 If-Modified-Since 对应 Last-Modified服务器该资源文件最后一次更改时间服务器的 response header 里返回 If-Modified-Since浏览器浏览器请求时的 request header 里的取的是 Last-Modify 的值。 在下一次发送请求时服务器在接收到会做比对如果相同则命中协商缓存。 If-No-Match 与 If-Modified-Since 是浏览器发送的请求头可以简略为以下格式
GET / HTTP/1.1
Host: example.com
Cache-Control: max-age0
If-None-Match: deadbeef // 对应服务端的标记Etag
If-Modified-Since: Tue, 22 Feb 2022 20:20:20 GMT // 对应服务端的Last-Modified补充知识常见的状态码
以2开头的代表的成功的返回以3开头代表重定向以4开头是客户端、用户操作的问题以5开头是服务器端的错误。
状态码含义200请求成功。301永久重定向请求的网页已永久移动到新位置浏览器会自动重定向到新的 url 地址。302临时重定向服务器目前从不同位置的网页响应请求可使用原有 url 地址。303查看其它位置重定向。304Not Modified资源未作修改。协商缓存。305所访问资源必须通过代理访问。401要求用户要进行身份验证未登录等情形。403请求已发出但服务端禁止访问。404页面无法找到。500服务器内部错误。501服务器不支持请求的功能。502网关错误。