美文网首页
6. HTTP头部

6. HTTP头部

作者: ErikYu | 来源:发表于2017-02-20 15:03 被阅读0次

6.1 HTTP报文头部

报文头部由几个字段构成

HTTP请求报文

由方法,URI,HTTP版本,HTTP头部字段等部分构成;

HTTP响应报文

由HTTP版本,状态码,HTTP头部字段构成

6.2 HTTP头部字段

HTTP头部字段结构

头部字段名: 字段值

4种HTTP头部字段类型

  1. 通用头部字段(General Header Fields)
    请求报文和响应报文都会使用的头部
  2. 请求头部字段(Request Header Fields)
    补充请求的附加内容、客户端信息、响应内容相关优先级等;
  3. 响应头部字段(Response Header Fields)
    补充响应的附加内容
  4. 实体首部字段(Entity Header Fields)
    针对实体部分使用的头部;补充资源内容的更新事件等;

HTTP/1.1头部字段一览

6.3 HTTP/1.1通用头部字段

cache-control:操作缓存的工作机制

分为缓存请求指令 / 缓存响应指令
表示能否缓存的指令

  1. public:(响应)表明其他用户也可以使用缓存;
  2. private:(响应)只对特定用户返回;
  3. no-cache:不缓存过期的资源
    (请求)客户端不会接受缓存过的响应;
    (响应)缓存前必须确定其有效性;如果对no-cache字段名具体指定参数值,客户端接收后就不能使用缓存

控制可执行缓存的对象的指令

  1. no-store:真正的不进行缓存,请求或响应中含机密信息;

指定缓存期限和认证的指令

  1. s-maxage:与max-age相同,区别于公共服务器
  2. max-age:必须有值,单位为秒;
    (请求)判定资源缓存的时间比指定时间的数值小,客户端就接收缓存的资源;
    (响应)数值代表资源保存为缓存的最长时间;
  3. min-fresh:(请求)要求缓存服务器返回至少还未过指定时间的缓存资源,必须有值,单位为秒;
  4. max-stale:(请求)指示缓存资源,即使过期也照常接受,不指定数值无论过多久,客户端都会接受;置顶数职,即使过期,只要处于max-stale指定时间内,仍会被接收;
  5. only-if-cached:(请求)只从缓存获取资源,要求缓存服务器不重新加载响应,也不再次确认资源的有效性;
  6. must-revalidate:(响应)代理会向源服务器再次验证即将返回的响应缓存目前是否仍然有效;
  7. proxy-revalidate:(响应)要求缓存服务器接收到客户端带有该指令的请求返回响应之前,必须再次验证缓存的有效性;
  8. no-transform:(请求)(响应)代理不能改变实体的媒体类型

Cache-Control扩展

  1. cache-extension token:

Connection

Connection头部字段的作用:控制不再转发给代理的头部字段;管理持久连接;

GET / HTTP/1.1
Upgrade: HTTP/1.1
Connection: Upgrade
Connection: 不再转发的头部字段名
Connection: Keep-Alive
Connection: Close

Date

创建报文的日期和时间

Pragma:历史遗留字段

Pragma: no-cache
要求所有中间服务器不返回缓存的资源;

Trailer

说明在报文主体后记录了哪些首部字段。

Transfer-Encoding

HTTP/1.1中的传输编码方式仅对分块传输编码有效
Transfer-encoding: chunked

Upgrade

检测HTTP协议和其他协议是否可以使用更高的版本进行通信,其数值可以用来指定一个完全不同的通信协议;
Upgrade头部字段仅限于客户端和邻接服务器之间,因此,使用Upgrade还要额外制定Connection: Upgrade;

Via

追踪客户端和服务器哦之间的请求和响应报文的传输路径;
经过代理或网关时,会首先在头部字段Via中附加该服务器的信息,然后转发

Warning:告知用户一些缓存相关问题的警告

HTTP/1.1 警告码

警告码 警告内容 说明
110 Response is stale 代理返回已过期的资源
111 Revalidation failed 代理验证资源有效性失败
112 Disconnection operation 代理与互联网连接被故意切断
113 Heuristic expiration 响应的使用期超过有效缓存的设定时间
199 Miscellaneous warning 任意的警告内容
214 Transformation applied 代理对内容编码或媒体类型执行了处理
299 Miscellaneous persistent warning 任意警告内容(持久)

6.4 请求头部字段

Accept

通知服务器用户代理能处理的媒体类型及媒体类型的相对优先级,type/subtype,可以一次指定多种媒体类型;

Accept: text/html, application/xhtml+xml;q=0.9

一些媒体类型的例子
文本文件
text/html,text/plain,text/css
application/xhtml+xml,application/xml
图片文件
image/jpeg,image/gif,image/png
视频文件
video/mpeg,video/quicktime

Accept-Charset

通知服务器用户代理支持的字符集和字符集相对优先级

Accept-Encoding

通知服务器用户代理支持的内容编码和内容编码的优先级;
几个内容编码的例子
gzip compress deflate
identify:不执行压缩或不会变化的默认编码样式

Accept-Language

告知服务器用户代理能够处理的自然语言集和优先级;

Authorization

通知服务器用户代理的认证信息(证书值)。通常,用户代理会在接受返回的401状态码响应后,把头部字段Authorization加入请求中;

Expect:告知服务器,期望出现的特定行为,HTTP/1.1只定义了一种

Expect: 100-continue

From

告知服务器使用用户代理的用户的电子邮件地址;例如显示搜索引擎等用户代理的负责人的邮件;

Host

HTTP/1.1规范中唯一一个必须被包含在请求内的头部字段;
告知服务器请求的资源所处的互联网主机名和端口号;因为单台服务器可能分配多个域名

If-Match

相关文章

  • 6. HTTP头部

    6.1 HTTP报文头部 报文头部由几个字段构成 HTTP请求报文 由方法,URI,HTTP版本,HTTP头部字段...

  • HTTP头部

    一、HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数...

  • HTTP头部

    原作者lcamry的博客 另外还有Cache-Control:请求包中:no-cache:不要缓存的实体,要求从W...

  • HTTP请求头部常用的HTTP安全头部

    使用以下HTTP头部可帮你快速容易地预防XSS攻击、点击挟持攻击、MIME嗅探和中间人攻击。如果目前还没使用,通过...

  • HTTP头部信息

    Accept Accept请求头域被用于指定服务器返回给客户端可接受的响应媒体类型。Accept头域能被用于指明请...

  • HTTP头部信息

    每个HTTP请求和响应都会带有响应的头部信息,XHR对象也提供了操作这两种头部(即请求头部和响应头部)信息方法。默...

  • http常用头部

    1、 Accept:告诉 WEB 服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所...

  • 常见http头部

    Accept 客户端用 Accept首部来通知服务器可以接受哪些媒体类型。 Accept-Charset 客户端用...

  • HTTP头部信息

    General Header: RequestURL:请求的URL地址RequestMethod:请求方法,get...

  • TCP头部、UDP头部、IP头部、HTTP头部的协议格式

    TCP头部 UDP头部 IP头部 HTTP的请求报文

网友评论

      本文标题:6. HTTP头部

      本文链接:https://www.haomeiwen.com/subject/abcewttx.html