我通過HttpWebRequest提交包含大量內容的HTTP POST請求。我想gzip郵件內容。這可能嗎?gzip HttpWebRequest
是否必須配置IIS 7以處理壓縮內容?它已被配置爲提供壓縮響應。
我試着添加一個Content-Encoding = gzip頭並寫入封裝在GZipStream中的請求流,但服務器返回一個504(GatewayTimeout),這看起來很奇怪。
我通過HttpWebRequest提交包含大量內容的HTTP POST請求。我想gzip郵件內容。這可能嗎?gzip HttpWebRequest
是否必須配置IIS 7以處理壓縮內容?它已被配置爲提供壓縮響應。
我試着添加一個Content-Encoding = gzip頭並寫入封裝在GZipStream中的請求流,但服務器返回一個504(GatewayTimeout),這看起來很奇怪。
絕大多數Web服務器不支持壓縮的請求體。 mod_deflate
可以配置爲在Apache上支持它,但實際上很少(因爲zip-bomb是一個簡單的潛在DoS攻擊)。我不知道IIS解決方案。
如果您正在與自己的服務器通話,那麼當然在應用程序級別上沒有任何事情阻止您進行壓縮。如果您必須通過標準表單類型來讀取後端,您應該選擇multipart/form-data
,因爲URL編碼會膨脹壓縮內容參數的二進制數據。
我不相信IIS7支持GZIP請求,開箱即用。這是爲什麼。在我的IIS7機器上,gzip.dll不會導出解壓縮方法。
c:\Windows\System32\inetsrv>c:\vc9\bin\dumpbin.exe -exports gzip.dll
Microsoft (R) COFF/PE Dumper Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file gzip.dll
File Type: DLL
Section contains the following exports for gzip.dll
00000000 characteristics
47919400 time date stamp Sat Jan 19 01:09:04 2008
0.00 version
1 ordinal base
6 number of functions
6 number of names
ordinal hint RVA name
1 0 0000242D Compress
2 1 00002E13 CreateCompression
3 2 000065AE DeInitCompression
4 3 000012EE DestroyCompression
5 4 0000658D InitCompression
6 5 000065B6 ResetCompression
Summary
1000 .data
1000 .reloc
1000 .rsrc
6000 .text
我認爲這代表了gzip.dll的變化。我相信在以前的gzip.dll版本中,有12個導出的方法,其中包括6個進行解壓縮的方法。