मैं वास्तव में इस अपाचे व्यवहार को समझने में कुछ मदद की सराहना करूंगा।
मैं एप्लिकेशन / json में iPhone उद्देश्य-सी ऐप से PHP में संचार कर रहा हूं। सर्वर पर Gzip संपीड़न सक्षम है, और क्लाइंट द्वारा अनुरोध किया गया है।
मेरे .htaccess से:
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php application/json
छोटे अनुरोधों के लिए, अपाचे 'सामग्री-लंबाई' हेडर सेट कर रहा है। उदाहरण के लिए (ये मान हेडर से ऑब्जेक्टिव-सी में आउटपुट हैं):
Connection = "Keep-Alive";
"Content-Encoding" = gzip;
"Content-Length" = 185; <-------------
"Content-Type" = "application/json";
Date = "Wed, 22 Sep 2010 12:20:27 GMT";
"Keep-Alive" = "timeout=3, max=149";
Server = Apache;
Vary = "Accept-Encoding";
"X-Powered-By" = "PHP/5.2.13";
"X-Uncompressed-Content-Length" = 217;
X- असम्पीडित-सामग्री-लंबाई एक हेडर है जिसे मैं असम्पीडित JSON स्ट्रिंग के आकार में जोड़ रहा हूँ।
जैसा कि आप देख सकते हैं, यह अनुरोध बहुत छोटा है (217 बाइट्स)।
यहाँ एक बड़े अनुरोध (282888 बाइट्स) के शीर्ष लेख हैं:
Connection = "Keep-Alive";
"Content-Encoding" = gzip;
"Content-Type" = "application/json";
Date = "Wed, 22 Sep 2010 12:20:29 GMT";
"Keep-Alive" = "timeout=3, max=148";
Server = Apache;
"Transfer-Encoding" = Identity;
Vary = "Accept-Encoding";
"X-Powered-By" = "PHP/5.2.13";
"X-Uncompressed-Content-Length" = 282888;
ध्यान दें कि सामग्री-लंबाई नहीं दी गई है।
मेरे सवाल:
- अपाचे बड़े अनुरोध के लिए सामग्री-लंबाई क्यों नहीं भेजता है?
- क्या तथ्य यह है कि 'कंटेंड-एन्कोडिंग = गज़िप' का मतलब यह है कि गज़िप संपीड़न अभी भी बड़े अनुरोध पर काम कर रहा है, भले ही मैं आकार अंतर को सत्यापित नहीं कर सकता हूं?
- क्या उपयोगकर्ताओं को डेटा उपयोग की अधिक सटीक रिपोर्ट करने के लिए इन बड़े अनुरोधों के लिए वास्तविक सामग्री-लंबाई को शामिल करने के लिए मैं अपाचे प्राप्त कर सकता हूं?
इस ऐप का उपयोग उन डेटा योजनाओं पर किया जा सकता है जो महंगे हैं, इसलिए उपयोगकर्ता को वास्तविक उपयोग की रिपोर्ट करने की मेरी इच्छा है, न कि 30-70% फुलाया हुआ उपयोग (कुछ सौ अतिरिक्त केबी ज्यादा नहीं लग सकते हैं - लेकिन इन योजनाओं की लागत $ 1 के बीच हो सकती है) और $ 10 प्रति एमबी!)।
अग्रिम में धन्यवाद।