跳到主要内容

2.2.5. Request Target (请求目标)

2.2.5. Request Target (请求目标)

@request-target 派生组成部分指 HTTP 请求消息的完整请求目标, 定义见 [HTTP] 第 7.1 节. 请求目标的组成部分值可因请求类型不同而取不同形式, 如下所述.

对 HTTP/1.1, 组成部分值等价于请求行中的请求目标部分. 然而, 在其他 HTTP 版本中可靠构造该值更为困难. 因此, 当可能使用除 1.1 以外的 HTTP 版本时, 不建议使用该组成部分.

origin 形式的值为请求 URL 的绝对路径与查询组成部分的组合.

例如, 下列请求消息:

POST /path?param=value HTTP/1.1 Host: www.example.com

将产生下列 @request-target 组成部分值:

/path?param=value

以及下列签名基行:

"@request-target": /path?param=value

下列对 HTTP 代理的请求使用 absolute-form 值, 包含完全限定的目标 URI:

GET https://www.example.com/path?param=value HTTP/1.1

将产生下列 @request-target 组成部分值:

https://www.example.com/path?param=value

以及下列签名基行:

"@request-target": https://www.example.com/path?param=value

下列 CONNECT 请求使用 authority-form 值, 包含目标的主机与端口:

CONNECT www.example.com:80 HTTP/1.1 Host: www.example.com

将产生下列 @request-target 组成部分值:

www.example.com:80

以及下列签名基行:

"@request-target": www.example.com:80

下列带星号形式 (asterisk-form) 值的 OPTIONS 请求消息, 包含单个星号 (*) 字符:

OPTIONS * HTTP/1.1 Host: www.example.com

将产生下列 @request-target 组成部分值:

以及下列签名基行:

"@request-target": *