Amazon web services Amazon Web服务的请求授权

Amazon web services Amazon Web服务的请求授权,amazon-web-services,get,Amazon Web Services,Get,我正在通过考试 以下代码解释了授权标头的构造: Authorization = "AWS" + " " + AWSAccessKeyId + ":" + Signature; Signature = Base64( HMAC-SHA1( YourSecretAccessKeyID, UTF-8-Encoding-Of( StringToSign ) ) ); StringToSign = HTTP-Verb + "\n" + Content-MD5 + "\n" + Cont

我正在通过考试

以下代码解释了授权标头的构造:

Authorization = "AWS" + " " + AWSAccessKeyId + ":" + Signature;

Signature = Base64( HMAC-SHA1( YourSecretAccessKeyID, UTF-8-Encoding-Of( StringToSign ) ) );

StringToSign = HTTP-Verb + "\n" +
    Content-MD5 + "\n" +
    Content-Type + "\n" +
    Date + "\n" +
    CanonicalizedAmzHeaders +
    CanonicalizedResource;

CanonicalizedResource = [ "/" + Bucket ] +
    <HTTP-Request-URI, from the protocol name up to the query string> +
    [ subresource, if present. For example "?acl", "?location", "?logging", or "?torrent"];

CanonicalizedAmzHeaders = <described below>
我的问题:

为什么他们在
GET
之后使用了三个
\n
?这背后有什么原因吗

此外,我可以按如下方式编写上述代码:

GET\n
\n
\n
Tue, 27 Mar 2007 19:36:42 GMT\n
请将“\n”视为分隔符。当示例发送空的
Content-MD5
Content-Type
时,您将看到一行中有三个
\n


我不知道您到底想做什么,但请记住,AWS SDK可以处理请求签名,因此您不必这样做。

冒着声明显而易见的风险,
\n
不是字面上的反斜杠和字母n,在这里。它是换行符ASCII LF的转义序列,一个值为0x0A的单字节。
GET\n
\n
\n
Tue, 27 Mar 2007 19:36:42 GMT\n