- 浏览: 761811 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
缓存请求指令
no-cache:强制向源服务器再次验证,防止从缓存中返回过期的资源
no-store:不缓存请求或响应的任何内容,暗示请求或响应中包含机密信息
max-age(必须):响应的最大Age值,如果判定缓存资源的缓存时间数值比指定时间的数值更小,那么客户端就接收缓存的资源。另外,当指定max-age值为0,那么缓存服务器通常需要将请求转发给源服务器
max-stale:接收已过期的响应,指示缓存资源,即使过期也照收
min-fresh(必须):期望在指定时间内的响应仍有效,要求缓存服务器返回至少还未过指定时间的缓存资源
no-transform:代理不可更改媒体类型,表示客户端仅在缓存服务器本地缓存目标资源的情况下才会要求其返回。换言之,该指令要求缓存服务器不重新加载响应,也不会再次确认资源有效性。若发生请求缓存服务器的本地缓存无响应,则返回状态码504Gateway Timeout
only-if-cached:从缓存获取资源
cache-extension:新指令标记
缓存响应指令
public:可向任意方提供响应的缓存,明确表示其他用户也利用缓存
private:仅向特定用户返回响应,响应只以特定的用户作为对象
no-cache:缓存前必须先确认其有效性
no-store:不缓存请求或响应的任何内容
no-transform:代理不可更改媒体类型,指令规定无论是在请求还是响应中缓存都不能改变实体主体的媒体类型,这样做可防止缓存或代理压缩图片等类似操作
must-revalidate:可缓存但必须再向源服务器进行确认,代理会向源服务器再次验证即将返回的响应缓存目前是否仍然有效,若代理无法连通源服务器再次获取有效资源的话,缓存必须给客户端一条504(Gateway Timeout)状态码,另外使用must-revalidate指令会忽略请求的max-stale指令(即使已经在首部使用了max-stale,也不会再有效果)
proxy-revalidate:要求中间缓存服务器对缓存的响应有效性再进行确认,要求所有的缓存服务器在接收有该指令的请求返回响应之前,必须再次验证缓存的有效性
max-age(必须):响应的最大Age值,缓存服务器将不对资源的有效性再作确认,而max-age数值代表资源保存为缓存的最长时间,应用HTTP/1.1版本的缓存服务器遇到同时存在Expires首部字段的情况时,会优先处理max-age指令,而忽略掉Expires首部字段。而HTTP/1.0版本的缓存服务器的情况却相反,max-age指令会被忽略掉
s-maxage(必须):公共缓存服务器响应的最大Age值,只适用于供多位用户使用的公共缓存服务器,也就是说对于向同一用户重复返回响应的服务器来说,这个指令没有任何作用,当使用s-maxage指令后,则直接忽略对Expires首部字段及max-age指令的处理
cache-extension:新指令标记
no-cache:强制向源服务器再次验证,防止从缓存中返回过期的资源
no-store:不缓存请求或响应的任何内容,暗示请求或响应中包含机密信息
max-age(必须):响应的最大Age值,如果判定缓存资源的缓存时间数值比指定时间的数值更小,那么客户端就接收缓存的资源。另外,当指定max-age值为0,那么缓存服务器通常需要将请求转发给源服务器
max-stale:接收已过期的响应,指示缓存资源,即使过期也照收
min-fresh(必须):期望在指定时间内的响应仍有效,要求缓存服务器返回至少还未过指定时间的缓存资源
no-transform:代理不可更改媒体类型,表示客户端仅在缓存服务器本地缓存目标资源的情况下才会要求其返回。换言之,该指令要求缓存服务器不重新加载响应,也不会再次确认资源有效性。若发生请求缓存服务器的本地缓存无响应,则返回状态码504Gateway Timeout
only-if-cached:从缓存获取资源
cache-extension:新指令标记
缓存响应指令
public:可向任意方提供响应的缓存,明确表示其他用户也利用缓存
private:仅向特定用户返回响应,响应只以特定的用户作为对象
no-cache:缓存前必须先确认其有效性
no-store:不缓存请求或响应的任何内容
no-transform:代理不可更改媒体类型,指令规定无论是在请求还是响应中缓存都不能改变实体主体的媒体类型,这样做可防止缓存或代理压缩图片等类似操作
must-revalidate:可缓存但必须再向源服务器进行确认,代理会向源服务器再次验证即将返回的响应缓存目前是否仍然有效,若代理无法连通源服务器再次获取有效资源的话,缓存必须给客户端一条504(Gateway Timeout)状态码,另外使用must-revalidate指令会忽略请求的max-stale指令(即使已经在首部使用了max-stale,也不会再有效果)
proxy-revalidate:要求中间缓存服务器对缓存的响应有效性再进行确认,要求所有的缓存服务器在接收有该指令的请求返回响应之前,必须再次验证缓存的有效性
max-age(必须):响应的最大Age值,缓存服务器将不对资源的有效性再作确认,而max-age数值代表资源保存为缓存的最长时间,应用HTTP/1.1版本的缓存服务器遇到同时存在Expires首部字段的情况时,会优先处理max-age指令,而忽略掉Expires首部字段。而HTTP/1.0版本的缓存服务器的情况却相反,max-age指令会被忽略掉
s-maxage(必须):公共缓存服务器响应的最大Age值,只适用于供多位用户使用的公共缓存服务器,也就是说对于向同一用户重复返回响应的服务器来说,这个指令没有任何作用,当使用s-maxage指令后,则直接忽略对Expires首部字段及max-age指令的处理
cache-extension:新指令标记
发表评论
-
其他首部字段:DNT
2015-05-03 07:47 736首部字段DNT属于HTTP请求首部,其中DNT是Do Not ... -
其他首部字段:X-XSS-Protection
2015-05-03 07:45 779首部字段X-XSS-Protection属于HTTP响应首部, ... -
其他首部字段:X-Frame-Options
2015-05-03 07:43 749首部字段X-Frame-Options属于HTTP响应首部,用 ... -
Cookie字段:Cookie
2015-05-02 08:54 513首部字段Cookie会告知服务器,当客户端想获得HTTP状态管 ... -
Cookie字段:Set-Cookie
2015-05-02 08:52 1133当服务器准备开始管理客户端的状态时,会事先告知各种信息 Se ... -
实体首部:Last-Modified
2015-05-02 08:40 498首部字段Last-Modified指明资源最终修改的时间.一般 ... -
实体首部:Expires
2015-04-28 21:29 733首部字段Expires会将资源失效的日期告知客户端.缓存服务器 ... -
实体首部:Content-Type
2015-04-28 21:24 531首部字段Content-Type说明了实体主体内对对象的媒体类 ... -
实体首部:Content-Range
2015-04-28 21:22 405针对范围请求,返回响应时使用的首部字段Content-Rang ... -
实体首部:content-MD5
2015-04-27 21:52 1088客户端会对接收的报文主体执行相同的MD5算法,然后与首部字段C ... -
实体首部:Content-Location
2015-04-27 21:47 427首部字段Content-Location给出与报文主体部分相对 ... -
实体首部:Content-Length
2015-04-27 21:43 630Content-Length表明了实体主体部分的大小(单位是字 ... -
实体首部:Content-Encoding
2015-04-26 08:02 523Content-Encoding会告知客户端服务器对实体的主体 ... -
实体首部:Allow
2015-04-26 07:59 499实体首部字段是包含在请求报文和响应报文中的实体部分所使用的首部 ... -
响应首部:WWW-Authenticate
2015-04-26 07:56 550WWW-Authenticate用于HTTP访问认证.它会告知 ... -
响应首部:Vary
2015-04-25 07:53 929首部字段Vary可对缓存进行控制.源服务器会向代理服务器传达关 ... -
响应首部:Server
2015-04-25 07:50 517首部字段Server告知客户端当前服务器上安装的HTTP服务器 ... -
响应首部:Retry-After
2015-04-21 20:56 598首部字段Retry-After告知客户端应该在多久之后再次发送 ... -
响应首部:Proxy-Authenticate
2015-04-21 20:54 691首部字段Proxy-Authenticate会把由代理服务器所 ... -
响应首部:Location
2015-04-14 20:17 547将响应接收方引导至某个与请求URI位置不同的资源,基本上,该字 ...
相关推荐
- 通用首部字段:如Cache-Control、Connection、Date等,适用于请求和响应报文。 - 请求首部字段:补充请求信息,如Authorization、User-Agent等。 - 响应首部字段:补充响应信息,如Server、Location等。 - ...
- **Cache-Control**: 控制缓存行为,如`no-cache`、`no-store`等。 - **Connection**: 指示连接是否保持打开状态,例如`Connection: keep-alive`。 - **Date**: 消息发送的时间戳。 - **Pragma**: 兼容HTTP/1.0的...
1. **通用首部字段**:Date、Connection、Cache-Control、Transfer-Encoding等。 2. **请求首部字段**:Host、Accept、Accept-Charset、Accept-Encoding、Accept-Language等。 3. **响应首部字段**:Accept-Ranges、...
- **通用首部**:适用于请求和响应,如`Cache-Control`、`Date`。 - **请求首部**:仅适用于客户端请求,如`Accept-Language`、`Authorization`。 - **响应首部**:仅适用于服务器响应,如`Content-Length`、`...
除了上述提到的通用首部之外,响应报文还可能包含特定于响应的首部,如: - `Content-Type`: 响应数据的媒体类型。 - `Content-Length`: 响应数据的长度。 - `Content-Encoding`: 响应数据的编码方式。 - `Server`:...
- **通用首部**:如Date(日期)、Cache-Control(缓存控制)等,应用于所有请求和响应。 - **请求首部**:如User-Agent(客户端信息)、Accept(接受的媒体类型)等,提供请求上下文信息。 - **响应首部**:如...
例如,Cache-Control用于控制缓存行为,Date用于指定日期和时间。 - **请求头报文**:包含客户端信息以及请求参数等,帮助服务器了解客户端环境。 - **响应头**:服务器通过响应头向客户端提供关于响应的信息,如...
首部字段可以分为4类:通用首部、请求首部、响应首部和实体首部。例如,`Host`字段指示请求的服务器地址,`User-Agent`提供客户端信息,`Accept`指明客户端可以处理的媒体类型,`Cache-Control`控制缓存策略,`...
7. 缓存机制:HTTP支持客户端缓存,通过Cache-Control、ETag和If-None-Match等首部字段来控制资源的缓存和验证。 8. 代理与重定向:HTTP协议允许使用代理服务器转发请求,以及通过状态码3xx进行重定向,改变请求的...
4. **缓存控制**(Cache Control):提供了更精细的缓存策略,允许服务器和客户端控制何时缓存资源,避免不必要的网络通信。 5. **虚拟主机**(Virtual Hosting):通过同一个IP地址上的不同端口或域名,可以托管多...