在HTTP签名中,我应该使用' request-line'或者'目标请求'?

时间:2015-07-17 18:03:06

标签: node.js joyent http-signature

我正在查看Readme.md的http-signing,这是Joyent的node-http-signature模块的一部分,它说要使用"特殊名称&#34 ;将HTTP请求目标包含在签名库中:

  

要在签名计算中包含HTTP请求行,请使用特殊请求行值。虽然这会使HTTP语言中的标头定义过载,但请求行在RFC 2616中定义,并且作为有用签名计算中标头的异常值,简单地使用请求行比添加单独的参数更简单。它

包括request-line意味着将POST /url/path/here HTTP/1.1等文字包含在签名库中。

相反draft 03 of the spec说要使用不同的特殊值"包括请求目标:

  

如果标题字段名称为(request-target),则通过连接lowercased:方法,ASCII空间和:path伪标题

生成标题字段值

是的,(请求目标)在parens中。

对于前者,请求的签名库可能如下所示:

POST /foo HTTP/1.1 + "\n"
date: Tue, 07 Jun 2011 20:51:35 GMT + "\n"
content-type: application/json + "\n"
content-md5: h0auK8hnYJKmHTLhKtMTkQ==

...而对于后者,同一请求的签名库将如下所示:

(request-target): POST /foo + "\n"
date: Tue, 07 Jun 2011 20:51:35 GMT + "\n"
content-type: application/json + "\n"
content-md5: h0auK8hnYJKmHTLhKtMTkQ==

哪个是权威的?我怀疑将有两种方法将方法和路径包含在签名库中。

我怀疑"实施规则",但我想知道真实意图。

0 个答案:

没有答案