Http
是否可以為請求啟用 http 壓縮?
我看到很多關於為伺服器響應啟用 http 壓縮的資訊,但是對於傳入的請求呢?瀏覽器在將大型文章發送到伺服器之前壓縮它們是否有意義?
另一個例子是我們使用的 REST Web 服務。我們必須頻繁發送帶有大型 XML 文件 (10+ MB) 的 PUT 請求,並且肯定會在雙方看到一些頻寬/速度優勢。
那麼這是在伺服器端解決的問題,還是每個 Web 應用程序都必須單獨處理?
要將
PUT
數據壓縮到伺服器,您必須壓縮請求正文並設置Content-Encoding: gzip
標頭。標頭本身必須是未壓縮的。它記錄在mod_deflate:mod_deflate 模組還提供了一個過濾器,用於解壓縮 gzip 壓縮請求體。為了啟動此功能,您必須使用 SetInputFilter 或 AddInputFilter 將 DEFLATE 過濾器插入到輸入過濾器鏈中。
…
現在,如果請求包含 Content-Encoding: gzip 標頭,則正文將自動解壓縮。很少有瀏覽器能夠對請求正文進行 gzip 壓縮。然而,一些特殊的應用程序確實支持請求壓縮,例如一些 WebDAV 客戶端。
描述它的文章在這裡:
你是怎麼做到的?這是來自 mod_deflate 原始碼的簡介:僅適用於主請求/無子請求。這意味著如果我們選擇使用它,請求的整個主體必須被 gzip 壓縮,不可能只壓縮包含文件的部分,例如在多部分請求中。
另外,瀏覽器可以通過在此處
Accept-Encoding
設置標頭來請求壓縮伺服器響應內容:GET /index.html HTTP/1.1 Host: www.http-compression.com Accept-Encoding: gzip User-Agent: Firefox/1.0
這會將壓縮數據返回給瀏覽器。