簡體   English   中英

間歇性問題:POST請求已損壞

[英]Intermittent issue: POST requests getting corrupted

在過去的幾個月里,我一直在經歷一個奇怪的間歇性問題,我一直在瘋狂地試圖孤立。

我在我的網站上運行了一個Flash電影,它生成XML數據,然后通過POST請求將其發送到PHP腳本。 這個文件的完整性是我的應用程序運行的關鍵,所以我需要確保它的到來。 為此,我生成一個MD5哈希並發送它。 在接收方,我的PHP腳本將接受數據,MD5它並比較兩個哈希值。 如果它們是相同的,那么我認為該文件很好並存儲它供以后使用。 如果MD5哈希值不同,我會給自己發送一封電子郵件並復制該文件以供人工檢查。

大多數時候(> 99%)這很好用,我發現上傳的數據沒有問題。 但是,每隔一段時間我就會發現一些額外的字符被注入到XML文件中,導致它被破壞。 發生這種情況時,文件似乎也會被截斷。 這是我在損壞的文件中看到的片段 - 看起來好像是一些與Web服務器相關的設置:

...開始XML數據......

     <scale>1.7</scale>
     <rotation>0</rotation>
     <popdelay>0.7290036325342953</popdelay>
    Proxy-Connection: keep-alive
Cache-Control: max-age=0

0<poptime>0.6</poptime>
     <popangle>90</popangle>
     <shadowvis>true</shadowvis>
     <backingcolor>0xFF222222</backingcolor>

...繼續XML數據......

我發現問題將在特定機器上發生后繼續發生 - 即如果用戶不斷嘗試上傳其文件,則錯誤將繼續在100%的時間內突然出現。 我見過這種情況發生在多個瀏覽器/平台上(如下所列):

Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; CMNTDF; InfoPath.3; .NET4.0C)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1)
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.16) Gecko/20101130 Firefox/3.5.16 (.NET CLR 3.5.30729)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; CMNTDF; InfoPath.3; .NET4.0C)

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3

我的應用程序服務器是通過另一個運行mod_proxy的apache2服務器訪問的,雖然我不確定它是否正在扮演一個角色,因為這個程序似乎幾乎一直在其他機器上運行。 我試圖調整我的apache2設置,但它們似乎沒有任何區別(如果您認為它相關/有幫助,我可以稍后發布它們)

如果有人知道發生了什么或如何開始解決這個問題,我真的非常感激。 我一直試圖研究這個問題幾個月,但沒有提出任何建議。

非常感謝您的參與!

看起來您的代理服務器正在分組上傳,因為客戶端沒有發送Content-Length標頭。 http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#request-bodies

嘗試啟用proxy-sendcl,這會強制代理緩沖上傳以確定內容長度,並在上傳到服務器時停止上傳。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM