4、HTTP/1.1通用首部字段 (1) Cache-Control 此字段用于操作缓存的行为。 指令的参数是可选的,多个指令之间通过“,”分隔。 缓存请求指令: 指令参数说明no-cache无强制向源服务器再次认证no-store无不缓存请求或响应的任何内容max-age = [秒]必需接受已过期的响应max-stale = [秒]可省略接受已过期的响应min-fresh = [秒]必需期望在指定时间内的响应仍有效no-transform无代理不可更改媒体类型only-if-cached无从缓存获取资源cache-extrension-新指令标记(token) 缓存响应指令 指令参数说明public无可向任意方提供响应的缓存private可省略仅向特定用户返回响应no-cache可省略缓存前必须先确认其有效性no-store无不缓存请求或响应的任何内容no-transform无代理不可更改媒体类型must-revaildate无可缓存但必须再向源服务器进行确认proxy-revalidate无要求中间换缓存服务器对缓存的响应有效性再进行确认max-age = [秒]必需响应最大Age值s-maxage = [秒]必需公共缓存服务器响应的最大Age值cache-extension-新指令标记(token) (2) Connection 作用:控制不再转发给代理的首部字段;管理持久连接。 指令参数说明不在转发的首部字段名无控制不再转发给代理的首部字段close无客户端与服务器端断开连接Keep-Alive无在旧版本的HTTP协议上维持持续连接 (3) Date 作用:表明创建HTTP报文的日期和时间 (4) Pragma 这是一个HTTP/1.1之前版本的历史遗留字段,仅作为与HTTP/1.0的向后兼容而定义 它只有一种定义:Pragma:no-cache (5) Trailer 作用:事先说明在报文主体后记录了哪些首部字段。 (6) Transfer-Encoding 作用:规定了传输报文主体时采用的编码方式 HTTP/1.1的传输编码方式仅对分块传输编码有效 (7) Upgrade 作用:用于检测HTTP协议及其他协议是否可使用更高的版本进行通信。 使用Upgrade时,还需要额外指定Connection:Upgrade (8) Via 作用:追踪客户端与服务器之间的请求和响应报文的传输路径。 Via首部经常回合TRACE方法一起使用。 (9) Warning 作用:告知用户一些与缓存相关的问题的警告。 Warning首部的格式:Warning:[警告码] [警告的主机:端口号] "[警告内容]" ([日期时间]) 警告码警告内容说明110Response is stale(响应已过期)代理返回已过期的资源111Revalidation failed(再验证失败)代理再验证资源有效性时失败(服务器无法到达等原因)112Disconnection operation(断开连接操作)代理与互联网连接被故意切断113Heuristic expiration(试探性过期)响应的试用期超过24小时(有效缓存的设定时间大于24小时的情况下)199Miscellaneous warning(杂项警告)任意的警告内容214Transformation applied(使用了转换)代理对内容编码或媒体类型等执行了某些处理时299Miscellaneous persistent warning(持久杂项警告)任意的警告内容 5、请求首部字段 (0)、概念:请求首部字段是从客户端网服务器端放松请求报文中所使用的字段,用于补充请求的附加信息、客户端信息、 对响应内容相关的优先级等内容。 (1) Accept 作用:可通知服务器,用户能够处理的媒体类型及媒体类型的相对优先级。 当服务器提供多种内容时,将会首先返回权重值最高的媒体类型。 (2) Accept-Charset 作用:通知服务器用户代理支持的字符集及字符集的相对优先顺序。 可一次性指定多种字符集。 (3) Accept-Encoding 作用:告知服务器用户代理支持的内容编码及内容编码的优先级顺序。 (4) Accept-Language 作用:告知服务器用户代理能够代理的自然语言集,以及自然语言集的相对优先级。可一次指定多种自然语言集。 (5) Anthorization 作用:告知服务器,用户代理的认证信息(证书值) (6) Expect 作用:告知服务器,期望出现的某种特定行为。 若服务器无法理解客户端的期望作出回应而发生错误时,会返回状态码417Expectation Failed (7) From 作用:告知服务器使用用户代理的用户的电子邮件地址。 (8) Host 作用:告知服务器,请求的资源所处的互联网主机名和端口号。 (9) If-Match(条件请求) 作用:服务器接收到附带条件的请求后,只有判断指定条件为真时,才会执行请求。 若不一致则返回412Precondition Failed的响应。 (10) If-Modified-Since 作用:告知服务器若If-Modified-Since字段值早于资源的更新时间,则希望能处理该请求。 若If-Modified-Since字段值之后的时间里资源都没有更新,则返回304Not Modified响应。 (11) If-None-Match 和首部字段If-Match作用相反。 (12) If-Range 作用:告知服务器若指定的If-Range字段值和请求资源的ETag值或时间相一致时,则作为范围请求处理。否则返回全体资源。 (13)If-Unmodified-Since 作用与If-Modified-Since相反。 (14) Max-Forwards 作用:以十进制整数形式指定可经过的服务器最大数目。 服务器在往下一个服务器转发请求之前,Max-Forwards的只减1后重新赋值。当Max-Forwards值为0时,则不再进行转发,而是直接返回响应。 (15) Proxy-Authorization 作用:告知服务器认证所需要的信息。 (16) Range 作用:对于只需获取部分资源的范围请求,此字段即可告知服务器资源的指定范围。 (17) Referer 作用:告知服务器请求的原始资源的URI。 (18) TE 作用:告知服务器客户端能够处理响应的传输编码方式及相对优先级。 (19) User-Agent 作用:将创建请求的浏览器和用户代理名称等信息传达给服务器。 6、响应首部字段 (0)概念:是由服务器端向客户端返回响应报文中所使用的字段,用于补充响应的附加信息、服务器信息,以及对客户端的附加要求等信息。 (1) Accept-Ranges 作用:告知客户端服务器是否能处理范围请求,以指定获取服务器某个部分的资源。 (2) Age 作用:告知客户端,源服务器在多久前创建了响应。单位为秒。 (3) ETag 作用:告知客户端实体标示。是一种可将资源以字符串形式做唯一性标识的方式。 服务器会为每份资源分配对应的ETag值。资源更新时ETag值也需要更新。 (4) Location 作用:将相应接收方引导至某个与请求URI位置不同的资源。 (5) Proxy-Authenticate 作用:把代理服务器所要求的认证信息发送给客户端。 (6) Retry-After 作用:告知客户端应该在多久之后再次发送请求。 (7) Server 作用:告知客户端当前服务器上安装的HTTP服务器应用程序的信息。 (8) Vary 作用:对缓存进行控制。 (9) WWW-Authenticate 作用:用于HTTP访问认证。告知客户端适用于访问请求URI所指定的认证方案(Basic/Digest)和带参数提示的质询(challenge) 7、实体首部字段 (0)概念:包含子在请求报文和响应报文中的实体部分所使用的首部,用于补充内容的更新时间等与实体相关的信息。 (1) Content-Encoding 作用:告知客户端服务器对实体的主体部分选用的内容编码方式。 内容编码:指在不丢失实体信息的前提下所进行的压缩。 (2) Content-Language 作用:告知客户端,实体主体使用的自然语言。 (3) Content-Length 作用:表明了实体主体部分的大小,单位是字节。 对实体主体进行内容编码传输时,不能再使用Content-Length。 (4) Content-Location 作用:给出与报文主体部分相对应的URI。 (5) Content-MD5 作用:检查报文主体在传输过程汇总是否保持完整,以及确认传输到达。 (6) Content-Range 作用:告知客户端作为相应返回的实体的哪个部分符合范围请求。单位为字节。 (7) Content-Type 作用:说明了实体主体内对象的媒体类型。 (8) Expires 作用:告知客户端资源失效的日期。 (9) Last-Modified 作用:指明资源最终修改的时间。 8、为Cookie服务的首部字段 (0)概念:管理服务器与客户端之间状态的Cookie (1)Set-Cookie Set-Cookie字段属性 属性说明NAME=VALUE赋予Cookie的名称和其值(必需项)expires=DATECookie的有效期(若不明确指定则默认为浏览器关闭为止)path=PATH将服务器上的文件目录作为Cookie的适用对象(若不指定则默认为文档所在的文件目录)domain=域名作为Cookie适用对象的域名(若不指定则默认为创建Cookie的服务器的域名)Secure仅在HTTPS安全通信时才会发送CookieHttpOnly加以限制,使Cookie不能被JavaScript脚本访问 expires属性 作用:指定浏览器可发送Cookie的有效期。 path属性 作用:用于限制指定Cookie的发送范围的文件目录。 domain属性 作用:通过domain属性指定的域名可做到与结尾匹配一致。 secure属性 作用:用于限制web页面仅在HTTTPS安全连接时,才可以发送Cookie HttpOnly属性 作用:使JavaScript脚本无法获得Cookie,目的为防止跨站脚本攻击(Cross-site scrioting,XSS)对Cookie的信息窃取。 9、其他首部字段 (1) X-Frame-Options 作用:用于控制网站内容在其他Web网站的Frame标签内的显示问题。 此字段有两个可指定的字段值:DENY(拒绝)、SAMEORIGIN(仅同源域名下的页面匹配时许可) (2) X-XSS-Protection 作用:这是针对跨站脚本攻击的一种对策,用于控制浏览器XSS防护机制的开关。 字段值分为:0(将XSS过滤设置成无效状态),1(将XSS过滤设置成有效状态) (3) DNT(Do Not Track) 作用:拒绝个人信息被收集,是表示拒绝被精准广告追踪的一种方法。 字段值分为:0(同意被追踪),1(拒绝被追踪) (4) P3P(The Platform for Privacy Preferences,在线隐私偏好平台) 作用:可以让个人隐私变成一种仅供程序可理解的形式,以达到保护用户隐私的目的。