请求首部字段

  • If-Math 与 Etag 对应
    只有当If-Match的字段值跟ETag值匹配一致时,服务器才会接受请求
    还可以使用星号(*)指定If-Match的字段值。针对这种情况,服务器将会忽略ETag的值,只要资源存在就处理请求
  • If-Modified-Since 与 Last-Modified 对应
    如果在If-Modified-Since字段指定的日期时间后,资源发生了更新,服务器会接受请求;否则304
  • If-None-Math 与 Etag 对应,与If-Math相反;
    只有在If-None-Match的字段值与ETag值不一致时,可处理该请求。
  • If-Rang的值若和Etag或更新时间一致,则作为范围请求处理;否则返回全部资源;
    优点:如果没有If-Range的话,面对range类资源,服务器资源没过期的话,当成正常的处理;一旦服务器资源过期了,则整个资源包含分段资源是无意义的,第一次请求服务器会响应412要求客户端重新请求,所以就花了两倍的请求量。
  • If-Unmodified-Since 与 If-Modified 字段的意思恰好相反,意思是在指定的请求资源只有在字段值内指定的日期时间之后,未发生更新的情况下,才能处理请求
  • Max-Forwards 最大转发次数,当转发次数是0时不再转发而是直接响应
  • Referer 请求是在哪个页面发起的
  • TE 客户端能够接受的传输编码 TE:gzip, deflate;q=0.5 (与Transfer-Encoding是一组,不同的是:TE是逐跳头部,Transfer-Encoding是端到端头部即在整个传输过程中有效)
  • User-Agent 如果经过代理,中间也很可能加上用户代理服务器名称

响应首部字段

  • Accept-Range 能处理范围请求-bytes 不能处理范围请求-none
  • Age 源服务器在多久创建了响应。比如缓存服务器的Age值表示这个缓存实体从产生到现在经过了多少秒了
  • Etag 实体标识
  • Location 重定向的目标URI,一般都是配合3XX重定向使用
  • Retry-After 制定客户端过多久或者指定具体时间之后再来访问
  • Server 服务器上HTTP服务器应用程序的信息
  • Vary 从代理服务器接收到源服务器返回包含Vary指定项的响应之后,若再要进行缓存,仅对请求中含有相同Vary指定首部字段的请求返回缓存。即使对相同资源发起请求,但由于Vary指定的首部字段不相同,因此必须要从源服务器重新获取资源。
  • WWW-Authenticate 用于HTTP访问认证。用于告知客户端用于访问请求URI所自定资源的认证方案和带参数提示的咨询

实体首部字段

  • Allow 通知客户端当前Request-URI所有支持的HTTP方法
  • Content-Encoding 服务器对实体的主体部分选用的内容编码方式(在不丢失信息的前提下所进行的压缩)
  • Content-Language 实体的主体内容的自然编码方式
  • Content-Length 表明实体部分的大小(字节)。注意:内容编码后的实体,就再使用此字段
  • Content-Location 给出与给报文主体对应的URI。当返回与实际请求不符时,首部字段Content-Location就会指定URI。(访问http://www.hackr.jp/返回的对象却是http://www.hackr.jp/index-ja.html等类似情况)
  • Content-MD5 服务端返回的报文主体内容的md5值,与客户端接受到的报文主体在客户端md5之后,比较两者,判定响应主体内容是否完整
  • Content-Range 针对范围请求,告知客户端响应返回的实体的哪个部分符合范围请求
  • Content-Type 实体主体对象的媒体类型
  • Expires 资源失效的日期给客户端。Expires时间之前的请求,走缓存,否则重新请求资源。
    如果源服务器不希望缓存服务器对资源进行缓存,最好在Expires字段内卸乳与首部字段Date相同的时间值,即发出后即过期。
    当首部字段Cache-Control有指定max-age指令时,比起首部字段Expires,会优先处理max-age指令。
  • Last-Modified 资源的最终修改时间

为Cookie服务的首部字段

  • Set-Cookie 服务器为客户端设置Cookie

    • expieres 指定浏览器可发送Cookie的有效期,如果忽略expires值,则有效期仅限于浏览器会话时间段内。因为服务端无法删除客户端的cookie,所以可以通过重设expires的方式,来使cookie失效
    • path 指定Cookie发送范围的文件目录
    • domain 指定的域名可做到与结尾一致
    • secure 限制Web页面进行了HTTPS安全连接时,才可发送Cookie
    • HttpOnly 使JavaScript无法获取Cookie
  • Cookie 客户端发送给服务器的一个或者多个Cookie

其他首部字段

X-开头的的头部都是非标准的参数,用以区别标准参数。目前在标准中已经提议停止该做法。

  • X-Frame-Options 用于控制网站内容在其他Web网站Frame标签内的现实问题

    • DENY 拒绝
    • SAMEORIGN 仅同源域名下的页面许可
  • X-XSS-Protect 针对跨站脚本攻击的一种策略

    • 0 将XSS过滤设置成无效状态
    • 1 将XSS过滤设置成有效状态
  • DNT 拒绝个人信息被收集,是表示拒绝被精准广告追踪的一种方法

    • 0 同意被追踪
    • 1 拒绝被追踪