HTTP详解--HTTP首部(八)

来源:互联网 发布:电子印章生成器软件 编辑:程序博客网 时间:2024/06/12 00:18
  • HTTP报文首部

    • HTTP协议的请求和响应报文必定包含HTTP首部。首部内容为客户端和服务器分别处理请求和响应提供所需要的信息。
    • HTTP请求报文的构成
      • 由方法,URI,HTTP版本,HTTP首部字段等部分构成

      • 示例:请求报文

    • HTTP响应报文的构成
      • HTTP版本,状态码(数字和原因短语),HTTP首部字段3部分构成

      • 示例:响应报文

  • HTTP首部字段
    • 无论是请求还是响应都会使用首部字段,它给浏览器和服务器提供报文主体大小,所使用的语言,认证信息等内容

    • HTTP首部字段是由首部字段名和字段值构成,并由":"分隔:

首部字段名:字段值

  • 例如:

Content-Type:text/html

首部字段名为Content-Type,text/html为字段值

  • 字段值对应单个HTTP首部字段可以有多个值:

Keep-Alive:timeout=15,max=100

  • HTTP首部字段重复了会这怎样?
    • 有些浏览器会优先处理第一次出现的首部字段,而有些则先处理最后出现的首部字段;
  • 4HTTP首部字段类型
    • 通用首部字段:请求报文和响应报文都会使用首部;
    • 请求首部字段:从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容,客户端信息,响应内容相关优先级等信息。
    • 响应首部字段:从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加内容;
    • 实体首部字段:针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等与实体有关的信息;
  • HTTP/1.1首部字段
    • 通用首部字段

首部字段名

说明

Cache-Control

控制缓存的行为

Connection

逐跳首部,连接的管理

Date

创建报文的日期时间

Pragma

报文指令

Trailer

报文末端的首部一览

Transfer-Encoding

指定报文主体的传输编码方式

Upgrade

升级为其他协议

Via

代理服务器的相关信息

Warning

错误通知

Accept

用户代理可处理的媒体类型

Accept-Charset

优先的字符集

Accept-Encoding

优先的内容编码

Accept-Language

优先的语言(自然语言)

Authorization

Web认证信息

Expect

期待服务器的特定行为

From

用户的电子邮箱地址

Host

请求资源所在服务器

If-Match

比较实体标记(ETag)

If-Modified-Since

比较资源的更新时间

If-None-Match

比较实体标记(与If-Match相反)

If-Range

资源未更新时发送实体Byte的范围请求

If-Unmodified-Since

比较资源的更新时间(与If-Modified-Since相反)

Max-Forwards

最大传输逐跳数

Proxy-Authorization

代理服务器要求客户端的认证信息

Range

实体的字节范围请求

Referer

对请求种URI的原始获取方

TE

传输编码的优先级

User-Agent

HTTP客户端程序的信息

  • 响应首部字段

首部字段名

说明

Accept-Ranges

是否接收字节范围请求

Age

推算资源创建经过时间

ETag

资源的匹配信息

Location

令客户端重定向至指定URI

Proxy-Authenticate

代理服务器对客户端的认证信息

Retry-After

对再次发起请求的时机要求

Server

HTTP服务器的安装信息

Vary

代理服务器缓存的管理信息

WWW-Authenticate

服务器对客户端的认证信息

  • 实体首部字段

首部字段名

说明

Allow

资源可支持的HTTP方法

Content-Encoding

实体主体使用的编码方式

Content-Language

实体主体的自然语言

Content-Length

实体主体的大小(单位:字节)

Content-Location

替代对应资源的URI

Context-MD5

实体主体的报文摘要

Content-Range

实体主体的位置范围

Content-Type

实体主体的媒体类型

Expires

实体主体过期的日期时间

Last-Modified

资源的最后修改日期时间

  • End-to-end首部和Hop-by-hop首部
    • HTTP首部字段将定义称缓存代理和非缓存代理的行为,分成两种类型;
    • 端到端首部(End-to-end Header
      • 分在此类别种的首部会转发给请求/响应对应的最终接收目标,且必须保存在由缓存生成的响应中,另外规定它必须被转发。
    • 逐跳首部(Hop-by-hop Header
      • 此类别的首部只对单次转发有效,会因通过缓存或代理而不再转发;
      • HTTP/1.1和之后版本种,如果要使用hop-by-hop首部,需要提供Connection首部字段;
原创粉丝点击