简述
- HTTP报头分为通用报头、请求报头、响应报头和实体报头。
- 请求方的HTTP报头结构:通用报头、请求报头和实体报头。
- 响应方的HTTP报头结构:通用报头、响应报头和实体报头。
请求头
Accept
1
Accept: text/plain
能够接受的回应内容类型。更多类型 。
Accept-Charset
1
Accept-Charset: utf-8
能够接受的字符集。
Accept-Encoding
1
Accept-Encoding: gzip,deflate
能够支持的编码方式。默认是identity
Accept-Language
1
Accept-Language: zh-cn
能够接受的自然语言。
Accept-Datetime
1
Accept-Datetime: Thu, 31 May 2007 20:35:00 GMT
能够接受的按照时间来表示的版本。
Authorization
1
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
用于超文本传输协议的认证的认证信息。
Cache-Control
1
Cache-Control: no-cache
用来指定在这次的请求/回复链中的所有缓存机制都必须遵守的指令。
Connection
1
Connection: keep-alive <br> Connection: Upgrade
该浏览器想要优先使用的连接类型
Cookie
1
Cookie: Version=1; name=test1;
之前由服务器通过 Set-Cookie 发送的一个超文本传输协议 Cookie 。
Content-Length
1
Content-Length: 348
以八位字节数组(8位的字节)表示的请求体的长度。
Content-MD5
1
Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
请求体的内容的二进制 MD5 散列值,以 Base64 编码的结果。
Content-Type
1
Content-Type: application/x-www-form-urlencoded
请求体的多媒体类型(用于POST和PUT请求中)
Date
1
Date: Tue, 15 Nov 1994 08:12:31 GMT
发送该消息的日期和时间(按照 RFC 7231 中定义的”超文本传输协议日期”格式来发送) 。
Expect
1
Expect: 100-continue
表明客户端要求服务器做出特定的行为。
From
1
From: user@example.com
发起此请求的用户的邮件地址。
Host
1
Host: coderq.github.io
服务器的域名(用于虚拟主机 ),以及服务器所监听的 传输控制协议端口号。如果所请求的端口是对应的服务的标准端口,则端口号可被省略。
If-Match
1
If-Match: "737060cd8c284d8af7ad3082f209582d"
仅当客户端提供的实体与服务器上对应的实体相匹配时,才进行对应的操作。主要作用时,用作像 PUT 这样的方法中,仅当从用户上次更新某个资源以来,该资源未被修改的情况下,才更新该资源。
If-Modified-Since
1
If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
允许在对应的内容未被修改的情况下返回304未修改( 304 Not Modified )。
If-None-Match
1
If-None-Match: "737060cd8c284d8af7ad3082f209582d"
允许在对应的内容未被修改的情况下返回304未修改( 304 Not Modified )。
If-Range
1
If-Range: "737060cd8c284d8af7ad3082f209582d"
如果该实体未被修改过,则向我发送我所缺少的那一个或多个部分;否则,发送整个新的实体。
If-Unmodified-Since
1
If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT
仅当该实体自某个特定时间已来未被修改的情况下,才发送回应。
Max-Forwards
1
Max-Forwards: 10
限制该消息可被代理及网关转发的次数。
Origin
1
Origin: http://www.example-social-network.com
发起一个针对跨来源资源共享的请求(要求服务器在回应中加入一个‘访问控制-允许来源’(’Access-Control-Allow-Origin’)字段)。
Pragma
1
Pragma: no-cache
与具体的实现相关,这些字段可能在请求/回应链中的任何时候产生 多种效果。
Proxy-Authorization
1
Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
用来向代理进行认证的认证信息。
Range
1
Range: bytes=500-999
仅请求某个实体的一部分。字节偏移以0开始。
Referer
1
Referer: http://en.wikipedia.org/wiki/Main_Page
表示浏览器所访问的前一个页面,正是那个页面上的某个链接将浏览器带到了当前所请求的这个页面。(“引导者”(“referrer”)这个单词,在RFC 中被拼错了,因此在大部分的软件实现中也拼错了,以至于,错误的拼法成为了标准的用法,还被当成了正确的术语) 。
TE
1
TE: trailers, deflate
浏览器预期接受的传输编码方式:可使用回应协议头Transfer-Encoding 字段中的那些值,另外还有一个值可用,”trailers”(与” 分 块 “传输方式相关),用来表明,浏览器希望在最后一个尺寸为0的块之后还接收到一些额外的字段。
User-Agent
1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/21.0
浏览器的浏览器身份标识字符串。
Upgrade
1
Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
要求服务器升级到另一个协议。
Via
1
Via: 1.0 fred, 1.1 example.com (Apache/1.1)
向服务器告知,这个请求是由哪些代理发出的。
Warning
1
Warning: 199 Miscellaneous warning
一个一般性的警告,告知,在实体内容体中可能存在错误。
响应头
Access-Control-Allow-Origin
1
Access-Control-Allow-Origin: *
指定哪些网站可参与到跨来源资源共享过程中。
Accept-Patch
1
Accept-Patch: text/example;charset=utf-8
指定服务器支持哪种文档格式。
Accept-Ranges
1
Accept-Ranges: bytes
这个服务器支持哪些种类的部分内容范围。
Age
1
Age: 12
这个对象在代理缓存中存在的时间,以秒为单位。
Allow
1
Allow: GET, HEAD
对于特定资源有效的动作。针对405不允许该方法( 405 Method not allowed )而使用。
Cache-Control
1
Cache-Control: max-age=3600
向从服务器直到客户端在内的所有缓存机制告知,它们是否可以缓存这个对象。其单位为秒。
Connection
1
Connection: close
针对该连接所预期的选项。
Content-Disposition
1
Content-Disposition: attachment; filename="fname.ext"
强制浏览器弹出下载窗口,注意不可以禁止缓存。
Content-Encoding
1
Content-Encoding: gzip
在数据上使用的编码类型。参考超文本传输协议压缩。
Content-Language
1
Content-Language: da
内容所使用的语言。
Content-Length
1
Content-Length: 348
回应消息体的长度,以字节(8位为一字节)为单位。
Content-Location
1
Content-Location: /index.htm
所返回的数据的一个候选位置。
Content-MD5
1
Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
回应内容的二进制 MD5 散列,以 Base64 方式编码。
Content-Range
1
Content-Range: bytes 21010-47021/47022
这条部分消息是属于某条完整消息的哪个部分。
Content-Type
1
Content-Type: text/html; charset=utf-8
当前内容的MIME类型。
Date
1
Date: Tue, 15 Nov 1994 08:12:31 GMT
此条消息被发送时的日期和时间(按照 RFC 7231 中定义的“超文本传输协议日期”格式来表示) 。
ETag
1
ETag: "737060cd8c284d8af7ad3082f209582d"
对于某个资源的某个特定版本的一个标识符,通常是一个消息散列。
Expires
1
Expires: Thu, 01 Dec 1994 16:00:00 GMT
指定一个日期/时间,超过该时间则认为此回应已经过期。
Last-Modified
1
Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT
所请求的对象的最后修改日期(按照 RFC 7231 中定义的“超文本传输协议日期”格式来表示) 。
Link
1
Link: </feed>; rel="alternate"
用来表达与另一个资源之间的类型关系,此处所说的类型关系是在 RFC 5988 中定义的。
Location
1
Location: http://www.w3.org/pub/WWW/People.html
用来进行重定向,或者在创建了某个新资源时使用。
Pragma
1
Pragma: no-cache
与具体的实现相关,这些字段可能在请求/回应链中的任何时候产生多种效果。
Proxy-Authenticate
1
Proxy-Authenticate: Basic
要求在访问代理时提供身份认证信息。
Public-Key-Pins
1
Public-Key-Pins: max-age=2592000; pin-sha256="E9CZ9INDbd+2eRQozYqqbQ2yXLVKB9+xcprMF+44U1g=";
用于缓解中间人攻击 ,声明网站的认证用的传输层安全协议证书的散列值。
Refresh
1
Refresh: 5; url=http://www.w3.org/pub/WWW/People.html
用于重定向或当一个新的资源被创建。这个刷新会在5秒后执行。
Retry-After
1
Retry-After: 120 Retry-After: Fri, 07 Nov 2014 23:59:59 GMT
如果某个实体临时不可用,则此协议头用来告知客户端日后重试。其值可以是一个特定的时间段(以秒为单位)或一个超文本传输协议日期。
Server
1
Server: Apache/2.4.1 (Unix)
服务器的名字。
Set-Cookie
1
Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1
HTTP cookie
Transfer-Encoding
1
Transfer-Encoding: chunked
用来将实体安全地传输给用户的编码形式。当前定义的方法包括:分块、压缩(compress)、缩小(deflate)、压缩(gzip)、实体(identity)。
Upgrade
1
Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
要求客户端升级到另一个协议。
Vary
1
Vary: *
告知下游的代理服务器,应当如何对未来的请求协议头进行匹配,以决定是否可使用已缓存的回应内容而不是重新从原始服务器请求新的内容。
Via
1
Via: 1.0 fred, 1.1 example.com (Apache/1.1)
告知代理服务器的客户端,当前回应是通过什么途径发送的。
Warning
1
Warning: 199 Miscellaneous warning
一般性的警告,告知在实体内容体中可能存在错误。
WWW-Authenticate
1
WWW-Authenticate: Basic
表明在请求获取这个实体时应当使用的认证模式。
Accept与Content-Type的区别
- Accept代表发送端希望得到的数据类型
- Content-Type代表客户端或服务端发送的实体数据的数据类型
扩展阅读:官方文档