首页 > 试题广场 >

下边与http缓存无关的头字段是

[单选题]
下边与http缓存无关的头字段是
  • Expires
  • Last-Modified
  • Content-Length
  • Etag

If-Modified-Since

对应 Last-modified。服务器返回资源时,会携带 Last-modified,表示该资源最后修改的时间。客户端如果缓存数据,就需要把这个时间保存起来,在下一次请求的时候用 If-Modified-Since 带上,让服务器判断资源的最后修改时间是否一致。如果一致,就返回304,让客户端直接使用本地缓存。否则说明资源被修改,返回新资源和新的 Last-modified。

Last-modified

资源最后修改时间,配合 If-Modified-Since 使用。属于响应头字段。

ETag

资源的特定版本标识符,可以类比软件的版本号,需要配合 If-None-Match 使用。另外,这个 E 是 Entity(实体)的意思。

If-None-Match

效果类似 If-Modified-Since,客户端第一次请求资源时会拿到响应头里的 ETag 字段,将其保存起来。下次请求时,就作为 If-None-Match 头字段的值进行请求。

Cache-Control

通用消息头字段,在请求头和响应头中有不同的语义,用于实现缓存控制

Expire

资源无效的时间节点

Vary

主要用于 代理服务器实现缓存服务,属于响应头字段

Via

通用字段,记录经过的代理节点的信息

X-Forwarded-For

该字段记录的是当前节点的请求方的 IP 地址

X-Real-IP

只记录客户端的 IP 地址
发表于 2021-10-07 20:31:24 回复(0)
Expires、Cache-Control、Last-Modified、 ETag是RFC 2616(HTTP/1.1)协议中和网页缓存相关的几个字段。前两个用来控制缓存的失效日期,后两个用来验证网页的有效性。
Expires字段声明了一个网页或URL地址不再被浏览器缓存的时间,一旦超过了这个时间,浏览器都应该联系原始服务器。
Last-Modified和ETag是条件请求(Conditional Request)相关的两个字段。如果一个缓存收到了针对一个页面的请求,它发送一个验证请求询问服务器页面是否已经更改,在HTTP头里面带上” ETag”和”If Modify Since”头。服务器根据这些信息判断是否有更新信息,如果没有,就返回HTTP 304(NotModify);如果有更新,返回HTTP 200和更新的页面内容,并且携带新的”ETag”和”LastModified”。
既然有了Last-Modified,为什么还要用ETag字段呢?因为如果在一秒钟之内对一个文件进行两次更改,Last-Modified就会不正确。因此,HTTP/1.1利用Entity Tag头提供了更加严格的验证。
发表于 2021-07-15 15:17:03 回复(0)