2009-07-30 79 views
1

我正在開發一個瀏覽器插件和服務器組件系統,使用自定義編碼類型來傳輸內容。現在我想能夠在服務器端檢測客戶端是否可以處理特殊編碼,並希望保持它與通常使用HTTP的方式一致,所以從瀏覽器插件我想添加一個新的編碼在Accept-Encoding請求頭中。即:如何使用Url Monikers或其他方法在IE中更改Accept-Encoding標頭?

接受編碼:gzip,緊縮,myencoding

我曾嘗試推行IHttpNegotiate並將其設置爲在BeginningTransaction額外的頭,但它似乎要麼忽略它,它便被後來覆蓋。

回答

1

請不要嘗試這樣做。任何允許你修改Accept-Encoding頭部的方法(例如異步可插入協議包裝)都必然是一種破解,並且不會可靠地工作,因爲WinINET,代理等都對Accept-Encoding和Content-Encoding做出了假設標題,並引入新的方案將不可靠。

例如,我聽說一個流行的代理將未知的編碼視爲GZIP,並重新編寫Content-Encoding標頭作爲響應;顯然這會破壞你的計劃。

+0

有趣。如果有太多的事情要打破它,HTTP規範有什麼意義呢?無論如何,這是用於特定的企業環境,所以代理問題真的不會成爲問題;我們已經在這種環境下在Firefox中徹底測試了這個方案。但是,WinINET對Accept-Encoding標頭做了什麼假設? – Gerald 2009-07-31 03:37:33

相關問題