HTTP中协商缓存是如何实现的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计567个文字,预计阅读时间需要3分钟。
一、什么是协商缓存+协商缓存是一种服务器端的缓存策略,客户端提供一种标记,用来判断资源是否一致。主要作用是判断客户端资源和服务端资源是否一致。
二、如何实现+主要是通过ETag或Last-Modified字段来实现。
1. ETag:服务器在响应头中返回一个ETag值,客户端在请求头中携带这个ETag值,如果服务器上的资源没有变化,则返回304状态码;如果资源发生变化,则返回新的资源内容。
2. Last-Modified:服务器在响应头中返回资源的最后修改时间,客户端在请求头中携带这个时间,如果服务器上的资源没有变化,则返回304状态码;如果资源发生变化,则返回新的资源内容。
返回304状态码时,表示资源没有变化,不需要重新下载资源。返回200状态码时,表示资源发生变化,需要重新下载资源。
一、什么是协商缓存
协商缓存是服务器端的一种缓存策略,服务端提供一种记号,用来判断客户端资源和服务端是否一样。
一致返回304,否则返回200和新资源。
二、如何实现
主要是通过在response header中携带相关标识
一种通过last-modified资源的最后修改时间
第一次请求时,服务器端会在response header插入last-modified最后修改时间,下一次客户端请求时在requestheader携带if-modified-since ,对比最后修改时间是否一致,来判定需要返回新数据。
一种通过Etag资源的唯一标识符(一种字符串)
第一次请求时,服务器端会在response header插入Etag标识符,下一次客户端请求时在requestheader携带 if-none-match,对比最后修改时间是否一致,来判定需要返回新数据。
例如:
Etag比last-modified更有优势,last-modified只能支持秒为单位
三、最后浏览器的缓存处理机制如下
本文共计567个文字,预计阅读时间需要3分钟。
一、什么是协商缓存+协商缓存是一种服务器端的缓存策略,客户端提供一种标记,用来判断资源是否一致。主要作用是判断客户端资源和服务端资源是否一致。
二、如何实现+主要是通过ETag或Last-Modified字段来实现。
1. ETag:服务器在响应头中返回一个ETag值,客户端在请求头中携带这个ETag值,如果服务器上的资源没有变化,则返回304状态码;如果资源发生变化,则返回新的资源内容。
2. Last-Modified:服务器在响应头中返回资源的最后修改时间,客户端在请求头中携带这个时间,如果服务器上的资源没有变化,则返回304状态码;如果资源发生变化,则返回新的资源内容。
返回304状态码时,表示资源没有变化,不需要重新下载资源。返回200状态码时,表示资源发生变化,需要重新下载资源。
一、什么是协商缓存
协商缓存是服务器端的一种缓存策略,服务端提供一种记号,用来判断客户端资源和服务端是否一样。
一致返回304,否则返回200和新资源。
二、如何实现
主要是通过在response header中携带相关标识
一种通过last-modified资源的最后修改时间
第一次请求时,服务器端会在response header插入last-modified最后修改时间,下一次客户端请求时在requestheader携带if-modified-since ,对比最后修改时间是否一致,来判定需要返回新数据。
一种通过Etag资源的唯一标识符(一种字符串)
第一次请求时,服务器端会在response header插入Etag标识符,下一次客户端请求时在requestheader携带 if-none-match,对比最后修改时间是否一致,来判定需要返回新数据。
例如:
Etag比last-modified更有优势,last-modified只能支持秒为单位
三、最后浏览器的缓存处理机制如下

