View a markdown version of this page

HTTP 請求和回應 - AWS Lambda

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

HTTP 請求和回應

Web 函數端點接受 HTTP/1.1 請求,並透過 HTTP/1.1 將其轉送到您的應用程式。Lambda 拒絕 HTTP/1.0 請求搭配 HTTP 505 (不支援 HTTP 版本)。Lambda 會保留請求方法、路徑、查詢字串、內文和大多數標頭。它會移除或變更描述用戶端與端點之間連線的標頭。它也會新增提供請求內容的標頭。

HTTP 方法

Web 函數端點支援 GET、HEAD、POST、PUT、OPTIONS、 PATCH和 DELETE。

在請求到達您的應用程式之前,Lambda 會拒絕具有 HTTP 400 回應的不支援方法。

請求標頭

Lambda 會在轉送請求之前移除下列標頭:

  • Connection、Keep-Alive、Upgrade、Expect、TE 和 Trailer

  • Proxy-Authenticate、Proxy-Authorization 與 Proxy-Connection

  • X-Real-IP

  • X-HTTP-Method-Override、X-HTTP-Method 與 X-Method-Override

  • 名稱開頭為 的標頭lambda-web-,以及標題中名為 的Connection標頭

Lambda 驗證或變更下列標頭。

標頭 Behavior (行為)
Host 必須是 Web 函數端點網域名稱 (例如 bcdfghjklmnpqrst.b7t.lambda-web.us-east-1.on.aws),小寫且不含連接埠。Lambda 路由此值,如果不符合端點,則傳回 HTTP 404,如果缺少標頭,則傳回 HTTP 400。您的應用程式會收到端點網域名稱。
X-Forwarded-For Lambda 會將連線用戶端的 IP 地址附加為最後一個值。先前的值來自用戶端,且未經驗證。當 Amazon CloudFront 分佈位於端點前面時,最後一個值是 CloudFront 地址。

Lambda X-Forwarded-Host 從用戶端轉送,無需驗證。除非您控制的前門設定重新導向、絕對 URLs或主機型授權,否則請勿使用它來建置重新導向、絕對 URL 或主機型授權。

Lambda 新增下列標頭。

標頭 說明
lambda-web-request-id Lambda 指派給請求的識別符。
lambda-web-endpoint-name 接收請求的端點名稱。

對於使用 IAM 授權的端點,Lambda 會驗證已簽署的請求,並在轉送Authorization標頭之前將其移除。如需詳細資訊,請參閱使用IamAuth身分驗證類型。

回應標頭

Lambda 會從應用程式的回應中移除連線範圍標頭和 HTTP 追蹤器。根據請求的結果,Lambda 可以新增下列標頭。

標頭 說明
lambda-web-request-id 請求識別符。使用它來建立回應與應用程式和系統日誌的關聯。
lambda-web-logstream Amazon CloudWatch Logs 日誌串流,其中包含處理請求之執行環境的日誌。
lambda-web-error-type 錯誤類型,格式為 <Prefix>.<ErrorReason>(例如 Platform.EndpointRequestThrottle或 Runtime.RequestTimeout)。Lambda 會針對內部服務錯誤和授權失敗省略此標頭。如需 值的清單,請參閱 Web 函數錯誤類型。

標頭限制

請求行、請求標頭和終止空白行總計最多可達 128 KiB。在請求到達您的應用程式之前,Lambda 會拒絕 HTTP 431 (請求標頭欄位太大) 超過此限制的請求。如需故障診斷,請參閱 請求標頭限制。