HTTP状态码和缓存
2024/7/5 | 字数检测:1446HTTP(超文本传输协议)是传输文字、图片等超文本数据的约定和规范。HTTP状态码分五类:1xx(提示)、2xx(成功)、3xx(重定向)、4xx(客户端错误)、5xx(服务器错误),并列举了常见状态码。文章还提及Host等常见HTTP字段。HTTP缓存技术分强制缓存(Cache-Control/Expires,前者优先)和协商缓存(Last-Modified/If-Modified-Since与ETag/If-None-Match,后者优先)两种。
HTTP 协议
HTTP 名为
超文本传输协议。
更加详细的解释是:HTTP 是一个在计算机世界里专门在「两点」之间「传输」文字、图片、音频、视频等「超文本」数据的「约定和规范」。
五大类 HTTP 状态码
1xx提示信息,表示目前是协议处理的中间状态,还需要后续操作2xx成功,报文已成功收到并正确处理3xx重定向,资源位置发生变动,需要客户端重新发送请求4xx客户端错误,请求报文有误,服务器无法处理5xx服务器错误,服务器在处理请求时内部发生错误
常见的一些状态码
200: 一切正常的成功请求
204: 成功请求,响应头没有 body 数据
206: 表示响应 body 返回的是一部分数据,用于断点续传和分块下载
301: 永久重定向,表示资源不在了,需要更换 URL 访问,响应头 Location 指明跳转地址
302: 临时重定向,暂时需要使用另一个 URL 访问,响应头 Location 指明跳转地址
304: 缓存重定向,不具有跳转含义,表示资源未修改,指示资源存在 缓存,用于缓存控制
400: 一个笼统的客户端请求错误
403: 表示服务器拒绝客户端请求
404: 表示访问资源不存在或未找到
500: 一个笼统的服务器错错误
501: 表示客户端请求的功能还不支持
502: 通常是服务器作为网关或代理时返回的错误码,表示服务器自身工作正常,访问后端服务器发生了错 误
503: 表示服务器繁忙,暂时无法响应客户端
常见 HTTP 字段
Host、Content-Length、Connection、Content-Type、Accept、Content-Encoding
HTTP 缓存技术
强制缓存和协商缓存
-
强制缓存
使用响应头Cache-Control(相对时间)字段和Expires(绝对时间)字段
使用缓存与否交给浏览器主动控制,判断时间后来直接决定是否使用缓存
注意: 如果 HTTP 响应头部同时有 Cache-Control 和 Expires 字段的话,Cache-Control 的优先级高于 Expires -
协商缓存
协商缓存就是服务器与客户端协商后决定是否使用本地缓存
两种方式实现 - 时间(响应头字段Last-Modified和请求头字段If-Modified-Since) - 资源唯一标识(响应头字段If-None-Match和请求头字段ETag)
注意:如果两者同时存在,后者(ETag)优先级更高
强缓存和协商缓存的工作流程图:
参考资源:小林 coding