StupidBeauty
Read times:760Posted at: - no title specified

维基百科文章翻译:超文本传输协议的协议头字段列表,List of HTTP header fields

超文本传输协议的协议头字段 指的是, 超文本传输协议 (HTTP)的 请求 和回复消息中,协议 头部分的那些组件。它们定义 了某个超文本传输协议事务中的操作参数。

内容目录

基本格式

字段名字

字段值

尺寸限制

请求字段

常见的非标准请求字段

回应字段

常见的非标准回应字段

参考

基本格式

协议 头的字段,是在请求(request)或回复(response)那一行(这是一条消息的第一行内容)内容之后传输的。协议 头的字段,是以明文的 字符串 格式传输的,以冒号分隔的键名/值对,最后 以回车(CR)和换行(LF)符序列结尾。协议 头部分的结束,是以一个空白的字段来标识的,结果就是,会传输两个连续的回车换行符对。 在历史上,曾经会将狠长的文字行以多个短行的形式传输; 在下一行的开头,输出一个空格(SP)或者一个水平制表符(HT),表示它是一个后续行。如今, 这种换行形式已经废弃了。


字段名字

在由 互联网工程 任务组 (IETF)发行的 征求修正意见 7231 中,对一组核心的字段进行了标准化。 有一份对于这些字段的官方的登记册,以及 一系列的补充规范 ,由互联网号码分配 (IANA)维护。各个应用程序 也可以自行定义额外的字段名字及相应的值。

协议 头的固定登记册 临时注册仓库 是由 互联网号码分配 维护 的。

按照惯例 ,对于 非标准的协议头字段, 是在字段名字前面加上 X- 前缀来标识的。 然而 ,这一惯例在2012 年六月被废弃了,因为 ,按照 这种惯例, 当非标准字段变成标准字段时,会引起狠多不方便之处。

之前 曾有的,对于 Downgraded- 的使用限制,也被取消了。

字段

某些字段 中可以包含注释内容 ( 也就是说,在 User-Agent Server Via字段 ) 这些注释内容可被应用程序忽略。

狠多字段值中都会带有带权重的(quality ( q ))键值对, 这种权重会在 内容协商 的过程 中使用。

尺寸限制

标准 中没有针对每个协议头字段的名字和值的尺寸设置任何限制, 也没有限制字段的个数。然而 ,出于实际场景及安全性的考虑,大部分的服务器、客户端和代理软件都会实施一些限制。例如, 阿帕奇(Apache)2.3 服务器, 在默认情况下, 会限制每个字段的尺寸不超过 8190字节 同时,单个请求中最多可以有 100 个协议头字段。


请求字段

协议头字段名

说明

示例

状态

Accept

能够接受的回应内容类型(Content-Types)。参考 内容协商

Accept: text/plain

确定(Permanent)

Accept-Charset

能够接受的字符集

Accept-Charset: utf-8

确定

Accept-Encoding

能够接受的编码方式列表。参考 超文本传输协议压缩

Accept-Encoding: gzip, deflate

确定

Accept-Language

能够接受的回应内容的自然语言列表。参考 内容协商

Accept-Language: en-US

确定

Accept-Datetime

能够接受的按照时间来表示的版本

Accept-Datetime: Thu, 31 May 2007 20:35:00 GMT

临时

Authorization

用于超文本传输协议的认证的认证信息

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

确定

Cache-Control

用来指定在这次的请求/回复链中的所有缓存机制 都必须 遵守的指令

Cache-Control: no-cache

确定

Connection

该浏览器想要优先使用的连接类型

Connection: keep-alive

确定

Cookie

之前由服务器通过 Set- Cookie (下文详述)发送的一个 超文本传输协议小甜饼

Cookie: $Version=1; Skin=new;

确定 标准

Content-Length

八位字节数组 (8位的字节)表示的请求体的长度

Content-Length: 348

确定

Content-MD5

请求体的内容的二进制 MD5 散列值,以 Base64 编码的结果

Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==

确定

Content-Type

请求体的 多媒体类型 (用于POST和PUT请求中)

Content-Type: application/x-www-form- urlencoded

确定

Date

发送该消息的日期和时间(按照 RFC 7231 中定义的"超文本传输协议日期"格式来发送)

Date: Tue, 15 Nov 1994 08:12:31 GMT

确定

Expect

表明,客户端要求服务器做出特定的行为

Expect: 100-continue

确定

From

发起此请求的用户的邮件地址

From: user@example.com

确定

Host

服务器的域名(用于 虚拟 主机 ),以及服务器所监听的 传输控制协议端口 号。如果所请求的端口是对应的服务的标准端口,则 端口 号可被省略。

自超文件传输协议版本1.1(HTTP/1.1)开始便是必需字段。

Host: en.wikipedia.org:80

Host: en.wikipedia.org

确定

If-Match

仅当客户端提供的实体与服务器上对应的实体相匹配时,才进行对应的操作。主要作用时,用作像 PUT 这样的方法中,仅当从用户上次更新某个资源以来,该资源未被修改的情况下,才更新该资源。

If-Match: "737060cd8c284d8af7ad3082f209582d"

确定

If-Modified-Since

允许在对应的内容未被修改的情况下返回304未修改( 304 Not Modified

If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT

确定

If-None-Match

允许在对应的内容未被修改的情况下返回304未修改( 304 Not Modified ),参考 超文本传输协议 的实体标记

If-None-Match: "737060cd8c284d8af7ad3082f209582d"

确定

If-Range

如果该实体未被修改过,则向我发送我所缺少的那一个或多个部分;否则,发送整个新的实体

If-Range: "737060cd8c284d8af7ad3082f209582d"

确定

If-Unmodified-Since

仅当该实体自某个特定时间已来未被修改的情况下,才发送回应。

If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT

确定

Max-Forwards

限制该消息可被代理及网关转发的次数。

Max-Forwards: 10

确定

Origin

发起一个针对 跨来源资源共享 的请求(要求服务器在回应中加入一个‘访问控制-允许来源’('Access-Control-Allow-Origin')字段)。

Origin: http://www.example-social-network.com

确定:标准

Pragma

与具体的实现相关,这些字段可能在请求/回应链中的任何时候产生 多种效果。

Pragma: no-cache

确定

Proxy-Authorization

用来向代理进行认证的认证信息。

Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

确定

Range

仅请求某个实体的一部分。字节偏移以0开始。参考 字节服务

Range: bytes=500-999

确定

Referer  [ sic ]

表示浏览器所访问的前一个页面,正是那个页面上的某个链接将浏览器带到了当前所请求的这个页面。(“引导者”(“referrer”)这个单词,在RFC 中被拼错了,因此在大部分的软件实现中也拼错了,以至于,错误的拼法成为了标准的用法,还被当成了正确的术语)

Referer: http://en.wikipedia.org/wiki/Main_Page

确定

TE

浏览器预期接受的传输编码方式:可使用回应协议头Transfer-Encoding 字段中的那些值,另外还有一个值可用,"trailers"(与" "传输方式相关),用来表明,浏览器希望在最后一个尺寸为0的块之后还接收到一些额外的字段。

TE: trailers,  deflate

确定

User-Agent

浏览器 浏览器身份标识字符串

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/21.0

确定

Upgrade

要求服务器升级到另一个协议。

Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11

确定

Via

向服务器告知,这个请求是由哪些代理发出的。

Via: 1.0 fred, 1.1 example.com (Apache/1.1)

确定

Warning

一个一般性的警告,告知,在实体内容体中可能存在错误。

Warning: 199 Miscellaneous warning

确定


常见的非标准请求字段

字段名字

说明

示例

X-Requested-With

主要用于标识 异步爪哇脚本 及可扩展标记语言 请求。大部分的 爪哇脚本框架 会发送这个字段,且将其值设置为 XMLHttpRequest

X-Requested-With: XMLHttpRequest

DNT [9]

请求某个网页应用程序停止跟踪某个用户。在火狐浏览器中,相当于X-Do-Not-Track协议头字段( 火狐4.0  测试Beta 11版开始支持) 旅行 互联网探索 9 也支持这个字段。在2011 年三月7 日,有人向互联网工程任务组提交了一个草案。 万维网协会 的跟踪保护工作组正在就此制作一项规范。

DNT: 1 (启用 “请勿跟踪”功能 )

DNT: 0 (禁用 “请勿跟踪”功能 )

X-Forwarded-For [13]

一个 事实 上的标准 ,用于标识某个通过超文本传输协议代理或负载均衡连接到某个网页服务器的客户端的原始互联网地址

X-Forwarded-For: client1, proxy1, proxy2

X-Forwarded-For: 129.78.138.66, 129.78.64.103

X-Forwarded-Proto [14]

一个 事实 上的标准 用于标识某个超文本传输协议请求最初所使用的协议,因为,在反向代理(负载均衡)上,即使最初发往该反向代理的请求类型是安全的超文本传输协议(HTTPS),该反向代理也仍然可能会使用超文本传输协议(HTTP)来与网页服务器通信。谷歌客户端在与谷歌服务器通信时会使用该协议头的一个替代形式(X-ProxyUser-Ip)。

X-Forwarded-Proto: https

X-Http-Method-Override [16]

请求某个网页应用程序使用该协议头字段中指定的方法(一般是PUT或DELETE)来覆盖掉在请求中所指定的方法(一般是POST)。当某个浏览器或防火墙阻止直接发送PUT 或DELETE 方法时(注意,这可能是因为软件中的某个漏洞,因而需要修复,也可能是因为某个配置选项就是如此要求的,因而不应当设法绕过),可使用这种方式。

X-HTTP-Method-Override: DELETE

Proxy-Connection [19]

因为对超文本传输协议规范的误解而实现的一个协议头。因为早期超文本传输协议版本实现中的错误而出现。与标准的连接(Connection)字段的功能完全相同。

Proxy-Connection: keep-alive

回应字段

字段名字

说明

示例

状态

Access-Control-Allow-Origin

指定哪些网站可参与到 跨来源资源共享 过程中

Access-Control-Allow-Origin: *

临时

Accept-Ranges

这个服务器支持哪些种类的部分内容范围

Accept-Ranges: bytes

确定

Age

这个对象在 代理缓存 中存在的时间,以秒为单位

Age: 12

确定

Allow

对于特定资源有效的动作。针对405不允许该方法( 405 Method not allowed )而使用

Allow: GET, HEAD

确定

Cache-Control

向从服务器直到客户端在内的所有缓存机制告知,它们是否可以缓存这个对象。其单位为秒

Cache-Control: max-age=3600

确定

Connection

针对该连接所预期的选项

Connection: close

确定

Content-Encoding

在数据上使用的编码类型。参考 超文本传输协议压缩

Content-Encoding: gzip

确定

Content-Language

内容所使用的语言

Content-Language: da

确定

Content-Length

回应消息体的长度,以 字节 (8位为一字节)为单位

Content-Length: 348

确定

Content-Location

所返回的数据的一个候选位置

Content-Location: /index.htm

确定

Content-MD5

回应内容的二进制 MD5 散列,以 Base64 方式编码

Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==

确定

Content-Disposition [21]

对于某种已知文件类型的二进制内容,弹出一个“文件下载”对话框,或者,对于动态内容给出一个文件名建议。对于特殊字符,需使用引号。

Content-Disposition: attachment; filename="fname.ext"

确定

Content-Range

这条部分消息是属于某条完整消息的哪个部分

Content-Range: bytes 21010-47021/47022

确定

Content-Type

当前内容 多媒体类型

Content-Type: text/html; charset=utf-8

确定

Date

此条消息被发送时的日期和时间(按照 RFC 7231 中定义的“超文本传输协议日期”格式来表示)

Date: Tue, 15 Nov 1994 08:12:31 GMT

确定

ETag

对于某个资源的某个特定版本的一个标识符,通常是一个 消息散列

ETag: "737060cd8c284d8af7ad30 82f209582d"

确定

Expires

指定一个日期/时间,超过该时间则认为此回应已经过期

Expires: Thu, 01 Dec 1994 16:00:00 GMT

确定:标准

Last-Modified

所请求的对象的最后修改日期(按照 RFC 7231 中定义的“超文本传输协议日期”格式来表示)

Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT

确定

Link

用来表达与另一个资源之间的类型关系,此处所说的类型关系是在 RFC 5988 中定义的

Link: </feed>; rel="alternate" [22]

确定

Location

用来 进行 重定向 ,或者在创建了某个新资源时使用。

Location: http://www.w3.org/pub/WWW/People.html

确定

Pragma

与具体的实现相关,这些字段可能在请求/回应链中的任何时候产生多种效果。

Pragma: no-cache

确定

Proxy-Authenticate

要求在访问代理时提供身份认证信息。

Proxy-Authenticate: Basic

确定

Retry-After

如果某个实体临时不可用,则,此协议头用来告知客户端日后重试。其值可以是一个特定的时间段(以秒为单位)或一个超文本传输协议日期。

  • •.示例1:  Retry-After: 120

  • •.示例2:  Retry-After: Fri, 07 Nov 2014 23:59:59 GMT

确定

Server

服务器的名字

Server: Apache/2.4.1 (Unix)

确定

Set-Cookie

一个 超文本传输协议小甜饼

Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1

确定:标准

Status

通用网关接口 协议头字段,用来说明当前这个超文本传输协议回应的 状态 。普通的超文本传输协议回应,会使用单独的“状态行”("Status-Line")作为替代,这一点是在 RFC 7230 中定义的。

Status: 200 OK

并未作为一个 已注册的字段名 被列出

Transfer-Encoding

用来将实体安全地传输给用户的编码形式。 当前定义 的方法 包括: 、压缩(compress)、缩小(deflate)、压缩(gzip)、实体(identity)。

Transfer-Encoding: chunked

确定

Upgrade

要求客户端升级到另一个协议。

Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11

确定

Vary

告知下游的代理服务器,应当如何对未来的请求协议头进行匹配,以决定是否可使用已缓存的回应内容而不是重新从原始服务器请求新的内容。

Vary: *

确定

Via

告知代理服务器的客户端,当前回应是通过什么途径发送的。

Via: 1.0 fred, 1.1 example.com (Apache/1.1)

确定

Warning

一个一般性的警告,告知,在实体内容体中可能存在错误。

Warning: 199 Miscellaneous warning

确定

WWW-Authenticate

表明在请求获取这个实体时应当使用的认证模式。

WWW-Authenticate: Basic

确定


常见的非标准回应字段

字段

说明

示例

Public-Key-Pins [29]

用于缓解 中间人攻击 ,声明网站的认证用的 传输 层安全协议 证书的散列值

Public-Key-Pins: max-age=2592000; pin-sha256="E9CZ9INDbd+2eRQozYqqbQ2yXLVKB9+xcprMF+44U1g=";

X-XSS-Protection [30]

跨站脚本攻击 (XSS)过滤

X-XSS-Protection: 1; mode=block

Content-Security-Policy, X-Content-Security-PolicyX-WebKit-CSP [31]

内容安全策略 定义

X-WebKit-CSP: default-src 'self'

X-Powered-By [34]

表明用于支持当前网页应用程序的技术(例如PHP)(版本号细节通常放置在 X-Runtime X-Version 中)

X-Powered-By: PHP/5.4.0

参考

蓝洁瑛

蓝洁瑛

Your opinions

Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands