[ADP-368] HTTP Expect
指引
- 伺服器應(SHOULD)適當回應包含 Expect 標頭的請求。
- 客戶端應(SHOULD)謹慎使用 Expect 標頭,以提高大型或關鍵請求的效率和可靠性。
其他標頭原則請參閱 ADP-129
範例
HTTP 請求和回應
http
POST /large-upload HTTP/1.1
Host: api.example.com
Content-Type: application/octet-stream
Content-Length: 1000000
Expect: 100-continue
[尚未發送請求主體]
伺服器回應:
http
HTTP/1.1 100 Continue
[客戶端現在可以發送請求主體]
OpenAPI 3.1.0 範例
yaml
openapi: 3.1.0
paths:
/large-upload:
post:
summary: 上傳大型檔案
consumes:
- application/octet-stream
headers:
Expect:
description: 用於大型上傳的 Expect 標頭
schema:
type: string
enum:
- 100-continue
responses:
'100':
description: 繼續發送請求主體
'417':
description: 期望失敗
最佳實踐
- 對於大型負載上傳,使用 Expect 標頭以避免在伺服器可能拒絕請求時進行不必要的數據傳輸。
- 在使用 Expect 標頭時,在客戶端和伺服器端都實作適當的超時處理。
- 考慮將 Expect 標頭與其他標頭(如 Content-Length)結合使用,以提供伺服器更多決策資訊。