Watch at Ease看見世界,讀懂生活。

科技 · 實用指南

curl 錯誤 92:HTTP/2 串流異常關閉?先保留重設碼,再強制 HTTP/1.1

退出碼 92 表示 HTTP/2 框架層或串流錯誤,並非單一原因。先保存精確重設、判斷請求能否安全重試、隔離客戶端/中介/來源站,再驗證完整回應。

顯示 curl 客戶端、中介與來源站邊界的原創技術插畫。
原創插畫:同一則錯誤訊息無法指出是哪一跳送出重設。 Watch at Ease

退出碼 92 表示 HTTP/2 框架層或串流錯誤,並非單一原因。先保存精確重設、判斷請求能否安全重試、隔離客戶端/中介/來源站,再驗證完整回應。

錯誤 92 是 HTTP/2 框架層串流錯誤,附帶名稱提供更多脈絡。 串流錯誤影響單一串流;連線錯誤影響整條連線。 HTTP/1.1 成功只縮小範圍,不能證明故障節點。

固定可重現請求與精確錯誤

記錄 curl -V、方法、URL、退出碼、串流編號與錯誤名稱;分享前移除授權、Cookie、令牌與正文。

盡量用唯讀端點或測試帳戶。瀏覽器成功不能否定 curl 失敗,因為協商、標頭、路由和連線重用可能不同。

重試前先判斷副作用

GET/HEAD 通常可重複,但仍需核對應用結果。POST、PUT、PATCH、DELETE 可能已執行,先查日誌、冪等鍵、工作或交易狀態。

RFC 9113 對 REFUSED_STREAM 與 GOAWAY 邊界給出保證;一般 CANCEL 或 INTERNAL_ERROR 並不相同。

用去識別追蹤定位邊界

先用 --verbose;目前 curl 可用 --trace-config ids,time,http/2,ssl。追蹤可能含敏感內容,只能私存並去識別。

對齊代理、CDN、閘道與來源站日誌,找出重設來源。錯誤 92 本身不會指出責任機器。

只改協定做對照

在相同 URL、載荷、憑據、代理與區域下分別測試 --http2 和 --http1.1。後者成功只說明問題依賴 HTTP/2 路徑。

不要同時調整緩衝、分段、網路與協定;一次只改一項並記錄版本。

驗證完整性後才限範圍緩解

核對狀態、標頭、位元組或雜湊與應用結果。下載先寫新暫存檔,API 正文必須完整解析。

只有安全請求、完整結果、明確範圍與期限都成立時才暫用 HTTP/1.1;副作用不明或邊緣結果不同時停止。

顯示重試安全判斷、受控協定測試與結果驗證的原創技術插畫。
原創技術插畫:先判斷請求副作用,再重試並驗證完整輸出。 Watch at Ease