我們運行一些直接映射到 GCS 的網站,因此 website.com 有一個名為 website.com 的存盤桶,其中包含所有 html 頁面和靜態檔案。
就在昨天,我們突然有了一個包含大量 .svg 影像檔案的頁面( /- 50,但都非常小 < 2kb)。還有一堆(比如說 10-15 個).png 影像。
從這些所有 .svg 檔案和只有 2 個 .png 檔案無法加載并出現錯誤:net::ERR_HTTP2_PROTOCOL_ERROR 200。
它在 Firefox 和 MS Edge 瀏覽器上運行良好。只有在 Chrome 上才會失敗。
我已經搜索過,大多數問題都與錯誤的標頭或 nginx 設定有關,但這直接與 GCS 存盤桶有關,因此我們無法控制任何這些。
我通過 Chrome 運行網路日志:
t= 5285 [st= 700] -HTTP_TRANSACTION_READ_HEADERS
t= 5286 [st= 701] HTTP_CACHE_WRITE_INFO [dt=0]
t= 5286 [st= 701] HTTP_CACHE_WRITE_DATA [dt=0]
t= 5286 [st= 701] NETWORK_DELEGATE_HEADERS_RECEIVED [dt=12]
t= 5289 [st= 704] HTTP2_STREAM_UPDATE_RECV_WINDOW
--> delta = -543
--> stream_id = 41
--> window_size = 6290913
t= 5298 [st= 713] -NETWORK_DELEGATE_HEADERS_RECEIVED
t= 5298 [st= 713] -URL_REQUEST_START_JOB
t= 5298 [st= 713] URL_REQUEST_DELEGATE_RESPONSE_STARTED [dt=0]
t= 5298 [st= 713] HTTP_TRANSACTION_READ_BODY [dt=0]
t= 5298 [st= 713] HTTP2_STREAM_UPDATE_RECV_WINDOW
--> delta = 543
--> stream_id = 41
--> window_size = 6291456
t= 5298 [st= 713] -HTTP_TRANSACTION_READ_BODY
t= 5298 [st= 713] URL_REQUEST_JOB_FILTERED_BYTES_READ
--> byte_count = 543
t= 5298 [st= 713] HTTP_TRANSACTION_READ_BODY [dt=60021]
t=65319 [st=60734] HTTP2_STREAM_ERROR
--> description = "Server reset stream."
--> net_error = "ERR_HTTP2_PROTOCOL_ERROR"
--> stream_id = 41
t=65319 [st=60734] -HTTP_TRANSACTION_READ_BODY
--> net_error = -337 (ERR_HTTP2_PROTOCOL_ERROR)
t=65319 [st=60734] FAILED
--> net_error = -337 (ERR_HTTP2_PROTOCOL_ERROR)
t=65347 [st=60762] -CORS_REQUEST
t=65347 [st=60762] -REQUEST_ALIVE
--> net_error = -337 (ERR_HTTP2_PROTOCOL_ERROR)
(還有更多,但我認為這是重要的部分;如果沒有,我可以提供整個日志)。
任何幫助解決這個謎團將不勝感激!
謝謝
uj5u.com熱心網友回復:
存盤在 Cloud Storage 中的影像很好,不是 Chrome 錯誤的來源。問題是由您的 JavaScript 引起的。還有一個問題是您的頁面執行了 Chrome 阻止的跨站點操作。這兩個問題可能是相關的。
請撰寫代碼的開發人員除錯并糾正此問題。
總之,這不是 Chrome 錯誤。該問題可能是由于 Chrome 對您的網頁行為采取了措施。最終結果是您必須修復您的應用程式。Edge 102 中也存在同樣的問題。
[更新]
實際問題是 HTTP 標頭x-goog-meta-link。該標頭(元資料)的大小為 7,461 位元組。組合的 HTTP 標頭超過 8 KB,這是問題的原因。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/492313.html
