[英]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>
所以我的問題是:
我在這里看到幾乎相同的問題: 身份被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字節)。
獲取包含正文的請求如果查看者GET請求包含正文,則CloudFront會向查看者返回HTTP狀態代碼403(禁止)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.