簡體   English   中英

AWS上是否允許使用正文獲取請求? 來自CloudFront的403錯誤

[英]Are Get request with body allowed on AWS? 403 error from CloudFront

我使用Visual Studio向AWS發布了api,並使用了適用於AWS無服務器應用程序項目的模板,現在我正在使用postman測試方法,但所有需要正文的get方法都返回了一個錯誤,在響應中提到了cloudfront,我這樣做了不知道該問題是否與cloudfront相關,或者是否是不允許使用正文獲取請求的AWS HTTP 1.1規范實現:

注意:獲取身體請求是我們客戶的要求

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>

所以我的問題是:

  1. 在AWS中獲得允許身體的請求?
  2. AWS如何通過正文獲取請求?
  3. 有沒有辦法讓工作在AWS上獲取請求?

我在這里看到幾乎相同的問題: 身份被CloudFront拒絕的AWS GET請求

他們指向這個文檔: https//docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-lambda-non-proxy-integration.html ,它說如果你發送一個帶有正文的get請求它會返回400錯誤,但我得到的錯誤是403錯誤

所以你能澄清一點嗎? 或者你能否指出一個亞馬遜文件提到獲取請求的限制?

非常感謝

在CloudFront上不允許使用Body獲取GET請求,如果您發送正文,則會獲得403,盡管RFC沒有明確說明您應該拒絕使用正文GET,但CloudFront不允許這樣做。 在GET請求中傳遞body的最佳選擇是查詢字符串(請求的最大長度,包括頭和查詢字符串20,480字節)。

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

獲取包含正文的請求如果查看者GET請求包含正文,則CloudFront會向查看者返回HTTP狀態代碼403(禁止)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM