2011-03-14 12 views
5

Son birkaç ay içinde, yalıtmaya çalışırken çıldırdığım garip bir aralıklı sorunla karşılaşıyorum.Kesintili sorun: POST istekleri bozuluyor

Sitemde XML verilerini üreten bir Flash film var ve bir POST isteğiyle bir PHP betiğine gönderir. Bu dosyanın bütünlüğü, uygulamamın işleyişinin anahtarıdır, bu yüzden bu adrese ulaştığından emin olmam gerekir. Bunun için bir MD5 hashı oluşturup bunu da gönderdim. Alıcı tarafında PHP betiğimde veri kabul edilir, MD5 açılır ve iki karma karşılaştırılır. Eğer aynı ise, o zaman dosyanın iyi olduğunu ve daha sonra kullanmak üzere saklıyorum. MD5 hashları farklıysa, kendime bir e-posta gönderirim ve manuel inceleme için dosyanın bir kopyasını hazırlarım.

Çoğu zaman (>% 99) bu güzel çalışır ve yüklenen verilerle ilgili hiçbir sorun bulamıyorum. Bununla birlikte, bir keresinde her zaman, XML dosyasına bozulan bazı ek karakterlerin enjekte edildiğini buldum. Bu olduğunda, dosya da kesilmiş gibi görünüyor. Burada bozuk dosyalarda görüyorum şeyin bir pasajı - bu bazı web sunucusu ile ilgili bir ayar sanki görünür: XML verilerini başlamak ...

...

 <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 devam data ...

Sorunun, belirli bir makinede meydana geldikten sonra gerçekleşmeye devam edeceğini buldum - örneğin, bir kullanıcı sürekli olarak dosyalarını yüklemeye çalışırsa, hata zamanın% 100'ünü kırpmaya devam edecek onlar için. Bu (aşağıda listelenmiştir) birden fazla tarayıcı/platformlarda gerçekleşmesi gördüm:

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 

emin değilim gerçi bu yana rol oynuyor ise My uygulama sunucusu, mod_proxy çalışan başka apache2 sunucusu üzerinden erişiliyor prosedür neredeyse tüm makineler üzerinde çalışıyor gibi görünüyor. Sana ses benim apache2 ayarları teşebbüs ettik ama kimse oluyor ya da ne kadar başlamak ne bir fikrin varsa

herhangi bir fark (bunu/alakalı yararlı olur düşünüyorsam onları daha sonra gönderebilirsiniz) yapmak görünmüyor Bunu ele al, gerçekten çok minnettarım. Bunu birkaç aydır araştırmaya çalışıyorum ve hiçbir şeyle gelmedim.

Zaman ayırdığınız için çok teşekkürler!

+1

Birden çok farklı tarayıcı türünde olduğundan, büyük olasılıkla bir tarayıcı olayı değildir. Bu isteklerin nereden geldiğini araştırmaya başla. Bu belirli bir ISP mi? Belirli bir alt ağ mı? –

+1

Verileri göndermek için hangi yöntemi kullanıyorsunuz? Gönderdiğiniz veriler ne kadar büyük? –

+0

Başparmak "veri ne kadar büyük" sorusuna kadar. Görünüşe göre XML, çok boyutlu ya da boyut nedeniyle ya da uzun süren (büyük olasılıkla dışarıdaki yavaş bağlantı nedeniyle) talep nedeniyle kırılmıştır. – preinheimer

cevap

İlgili konular