HTTP授权标头和查询字符串参数之间的区别

Pru*_*hvi 5 authentication amazon-s3 httprequest amazon-web-services pre-signed-url

在阅读有关与的交互时Amazon S3,我知道与的请求身份验证通过Amazon AWS两种方式完成

  1. HTTP授权:使用HTTP授权标头是提供身份验证信息的最常用方法
  2. 查询字符串参数:当您要在URL中完全表示请求时,使用查询参数来验证请求很有用。此方法也称为对URL进行预签名。

问题是,在哪种情况下我应该更喜欢一种方法。这两种身份验证方法是否各有优缺点?作为开发人员,通过使用query string parameters方法,我可以对URL进行预签名,从而使最终用户可以Amazon S3通过在Web浏览器中输入预签名的URL 来临时访问资源。我可以使用HTTP Authorization方法来实现相同的目的吗?如果是这样,哪种方法更好用?它们各自的局限性是什么?

Tho*_*key 1

AWS 第一个页面中的概述说明了不同之处:

除了POST 请求使用查询参数签名的请求之外,所有 Amazon S3 存储桶操作和对象操作都使用 Authorization 请求标头来提供身份验证信息。

a 基本上POST用于HTML表单(在 Mozilla 页面中详细讨论)。只要请求涉及将数据传递到远程服务器,您就可以使用表单,而不是仅仅检查状态。如HTML 方法属性(W3Schools)中所述,

切勿用于GET发送敏感数据!(将在 URL 中可见)

区别于POST

在 HTTP 请求正文中附加表单数据(数据未显示在 URL 中)