Last-Modified 和 If-Modified-Since 是 HTTP 头,用于实现条件请求,以此来优化网络使用和提高性能。
Last-Modified 是一个响应头,服务器用它来表示资源最后一次修改的时间。
If-Modified-Since 是一个请求头,客户端用它来询问自指定日期以来资源是否被修改。
工作流程如下:
1.客户端首次请求资源时,服务器会在响应中包含 Last-Modified 头。
HTTP/1.1 200 OK
Last-Modified: Mon, 03 Jan 2022 08:00:00 GMT
2.客户端再次请求同一资源时,会在请求中包含 If-Modified-Since 头,其值为上次响应中 Last-Modified 的值。
GET /resource HTTP/1.1
If-Modified-Since: Mon, 03 Jan 2022 08:00:00 GMT
3.如果资源自 If-Modified-Since 以来没有被修改,服务器会返回 304 Not Modified 状态码,不返回资源内容。客户端会使用缓存的资源。
HTTP/1.1 304 Not Modified