gpt4 book ai didi

amazon-web-services - AWS 上是否允许带有正文的 Get 请求?来自 CloudFront 的 403 错误

转载 作者:行者123 更新时间:2023-12-02 08:02:09 25 4
gpt4 key购买 nike

我使用 Visual Studio 向 AWS 发布了一个 api,并使用 AWS 无服务器应用程序项目的模板,现在我正在使用 postman 测试这些方法,但是所有需要主体的 get 方法都返回一个错误,在响应中提到了 cloudfront,我这样做不知道该问题是否与 cloudfront 相关,或者是否是 AWS HTTP 1.1 规范实现不允许带有正文的 get 请求:

注意:获取带有正文的请求是我们客户的要求

RFC 7231 HTTP/1.1 规范说明如下:
GET 请求消息中的负载没有定义的语义;
在 GET 请求上发送有效负载正文可能会导致一些现有的
拒绝请求的实现。

    <HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The request could not be satisfied</TITLE>
</HEAD>
<BODY>
<H1>403 ERROR</H1>
<H2>The request could not be satisfied.</H2>
<HR noshade size="1px">
Bad request.


<BR clear="all">
<HR noshade size="1px">
<PRE>
Generated by cloudfront (CloudFront)
Request ID:
</PRE>
<ADDRESS></ADDRESS>
</BODY>
</HTML>

所以我的问题是:
  • 是 AWS 中允许的带有正文的获取请求吗?
  • AWS 如何处理带有正文的 get 请求?
  • 有没有办法让工作在 AWS 上通过 body 获取请求?

  • 我在这里看到了几乎相同的问题: AWS GET request with body rejected by CloudFront

    他们指向这个文件: https://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-lambda-non-proxy-integration.html 说如果你发送一个带有 body 的 get 请求,它会返回一个 400 错误,但我得到的错误是 403 错误

    所以你能澄清一点吗?或者你能指出一份提到获取请求限制的亚马逊文件吗?

    非常感谢

    最佳答案

    CloudFront 上不允许带有 Body 的 GET 请求,如果您发送 body,您将得到 403,尽管 RFC 没有明确说明您应该拒绝带有 body 的 GET,但 CloudFront 不允许这样做。在 GET 请求中传递正文的最佳选择是通过查询字符串(请求的最大长度,包括 header 和查询字符串 20,480 字节)。

    https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html

    包含正文的 GET 请求
    如果查看器 GET 请求包含正文,CloudFront 会向查看器返回 HTTP 状态代码 403(禁止)。

    关于amazon-web-services - AWS 上是否允许带有正文的 Get 请求?来自 CloudFront 的 403 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55910096/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com