2012-11-30 43 views
0

當我通過wifi向Web服務發出請求時,一切正常,但是在使用具有WAP連接的GPRS時也是如此(我沒有強制連接到可能是WAP,這可能與運營商有關。在阿根廷進行的測試)服務器在內容類型& Content-Length中接收到重複值。通過GPRS/WAP進行連接時在http請求標頭中顯示多個值

以下是通過WiFi第一次在服務器上記錄和通過GPRS第二次記錄的請求。

在無線網絡:

POST /ODP/Services.asmx HTTP/1.1 
User-Agent: kSOAP/2.0 
SOAPAction: http://temphost.org/RetrieveConfiguration 
Content-Type: text/xml 
Connection: close 
Content-Length: 464 
Host: temp.host.com 
Accept-Encoding: gzip 

在GPRS:

POST /ODP/Services.asmx HTTP/1.1 
Accept-Encoding: deflate, gzip, identity 
Content-Length: 464, 464 
Content-Type: text/xml, text/xml 
Host: temp.host.com 
SOAPAction: http://temphost.org/RetrieveConfiguration 
User-Agent: kSOAP/2.0 
X-WAP-WTLSEncryptiontype: NONE 
X-WAP-Bearerinfo: W-HTTPS=FALSE, bearertype=0 
Via: W-HTTP/1.1 wgw-fe6 EMIG 5.1 
x-msisdn: <User Phone number> 
x-up-calling-line-id: <User Phone number> 
x-technology-stack: Unknown 
TE: trailers 
Connection: TE 

我無法理解如何以及在&的Content-Type的內容 - 請求被添加了多個值,其中長度標題。

有人能告訴我WAP連接出了什麼問題,或者是在將請求修改爲WAP時,在運營商端添加了什麼?

回答

2

可悲的是客戶端(客戶端/電話/瀏覽器)沒有任何關係,但是有一些可能的方案來獲得解決方案。 如果您是Web開發人員(VASP方),您需要注意URL/URI大小以防止POST需要多個數據包。 如果你是網絡服務器管理員(VASP/Telco方),你可以定義多個值將被接受這些特定的頭(當相等)。在這種情況下,你需要知道你會把你的服務器存在HTTP響應分裂攻擊的風險。 如果你是代理管理員(電信端),你可以調整你的GW放棄額外的頭,而不是合併成一個包含多個值的頭,但在這種情況下,你需要知道你會超出RFC recomendations。

2

如果由於其擴展名,POST被截斷並且需要多個數據包,則會重複內容長度和內容類型字段。

WGW通過將它們合併成一個包含多個逗號分隔的標題來解決這個問題,問題是這個包含多個值的標題生成HTTP 411錯誤代碼。

根據最新的RFC草案,此流量必須丟棄,錯誤代碼爲502,但某些解決方法旨在刪除其中一個標題,而不是合併它們以保持此事務處理正在進行。

+0

非常感謝您的回答,我是否必須在客戶端做任何事情來消除這種情況,或者在服務器端添加解決方法是這種情況下唯一的解決方案? – Sudhaker