मैं कैसे बता सकता हूं कि मेरा सर्वर GZipped सामग्री परोस रहा है?


160

मेरे पास NGinx सर्वर पर एक वेबएप है। मैं gzip onconf फ़ाइल में सेट करता हूं और अब मैं यह देखने की कोशिश कर रहा हूं कि क्या यह काम करता है। YSlow का कहना है कि यह 6 वेबसाइटों में से 5 नहीं है जो परीक्षण करते हैं यह कहते हैं कि यह है। मैं इस पर एक निश्चित उत्तर कैसे प्राप्त कर सकता हूं और परिणामों में अंतर क्यों है?

जवाबों:


229

ऐसा लगता है कि एक संभावित उत्तर है, अस्वाभाविक रूप से curl:

$ curl http://example.com/ --silent --write-out "%{size_download}\n" --output /dev/null
31032
$ curl http://example.com/ --silent -H "Accept-Encoding: gzip,deflate" --write-out "%{size_download}\n" --output /dev/null
2553

दूसरे मामले में क्लाइंट सर्वर को बताता है कि यह सामग्री एन्कोडिंग का समर्थन करता है और आप देख सकते हैं कि प्रतिक्रिया वास्तव में छोटी, संकुचित थी।


3
यह सच है, लेकिन कुछ फ़ाइल प्रकारों को संपीड़ित करने के लिए gzip को कॉन्फ़िगर किया जा सकता है, और दूसरों को बाहर कर सकता है। इसलिए सुनिश्चित करें कि इस परीक्षण का उपयोग करके आपके द्वारा कर्ल की गई फाइलें उस प्रकार की हैं जो संकुचित होगी।
टायलर बिस्को

5
मेरा सुझाव है कि सभी रीडायरेक्ट का अनुसरण करने के -Lलिए curlभी ध्वज का उपयोग किया जाए, जैसे कि गैर-www से www.अन्यथा size_download का परिणाम गलत हो सकता है
vladkras

अगर मैं अपने छोटे देवों पर एक चीज को प्रभावित कर सकता हूं, तो यह एक ठोस यूनिक्स नींव रखने का महत्व है। CURL के लिए +1। जब आप इसे जानते हैं, तो यह एक भ्रमित करने वाला जीवन है।
अक्रोन

105

अपडेट करें

क्रोम ने रिपोर्ट करने के तरीके को बदल दिया (यदि आवश्यक हो तो मूल उत्तर देखें)। आप डेवलपर टूल (F12) का उपयोग करके बता सकते हैं। नेटवर्क टैब पर जाएं, उस फ़ाइल का चयन करें जिसे आप जांचना चाहते हैं और फिर दाईं ओर स्थित हेडर टैब देखें। यदि आप gzipped हैं, तो आप सामग्री-एन्कोडिंग में देखेंगे।

इस उदाहरण में, स्लाइडर .jpg वास्तव में gzipped किया जा रहा है।

यहां छवि विवरण दर्ज करें

उसकी तुलना इस पृष्ठ से करें, जिस पर आप हैं और एक png फ़ाइल को देखें, आपको ऐसा कोई पदनाम नहीं दिखाई देगा।

यहां छवि विवरण दर्ज करें

बस स्पष्ट होना, यह नहीं है क्योंकि एक jpg है और एक png है। ऐसा इसलिए है क्योंकि एक gzipped है और दूसरा एक नहीं है।


पिछला उत्तर

क्रोम में, यदि आप डेवलपर टूल को खींचते हैं और नेटवर्क टैब पर जाते हैं, तो यह निम्न दिखाएगा यदि कोई संपीड़न नहीं है:

यहां छवि विवरण दर्ज करें

और निम्नलिखित अगर वहाँ संपीड़न है:

यहां छवि विवरण दर्ज करें

दूसरे शब्दों में, समान संख्या, ऊपर और नीचे का अर्थ है, कोई संपीड़न नहीं।


3
प्रतिक्रिया हेडर का निरीक्षण करना बेहतर हो सकता है। यह विधि यह नहीं कहती है कि क्या gzip संपीड़न का उपयोग शुरू हो गया है या कुछ अन्य संपीड़न एल्गोरिथम।
सैमुअल

4
नेटवर्क टैब पर क्रोम डेवलपर टूल्स में, अनुरोध के लिए एसेट नाम / लिंक पर क्लिक करें और आप रिस्पांस हेडर का निरीक्षण कर सकते हैं और gzipसामग्री-एन्कोडिंग कुंजी के लिए देख सकते हैं ! [स्क्रीनशॉट] [1] [1]: i.stack .imgur.com / Bpb5W.png (http://content.screencast.com/users/…
d48

1
हाल के क्रोम संस्करण (संस्करण 44.0.2403.130 मीटर) आकार / सामग्री विवरण नहीं दिखाते हैं - मेरा मतलब है कि gzip विवरण - i.imgur.com/MTz7DCM.png । क्या किसी को इसका कारण पता है?
एंडी डफ्रेसने

33

प्रतिक्रिया हेडर में देखें। FireFox में आप Firebug से जांच कर सकते हैं।

Content-Encoding    gzip

यदि सर्वर gzip सामग्री का समर्थन करता है तो इसे प्रदर्शित किया जाना चाहिए।


9
यह आपको तभी मिलेगा जब आपके ग्राहक ने "स्वीकार-एनकोडिंग:
गज़िप, डिफ्लेट

2
मूल फ़ाइल के एन्कोडिंग को देखने के लिए हार्ड रिफ्रेश, जैसे ही फाइल को स्टेटस 304 के साथ परोसा जाता है, ऐसा लगता है कि कैश्ड संस्करण पहले से ही अनज़िप हो गया है! (मेरे मामले में, मैं सामग्री-एनकोडिंग के बजाय एक ईटैग हेडर देख रहा हूं)
पीटीआईएम

11

क्रोम, डेवलपर टूल> नेटवर्क के नए संस्करण में, आप कॉलम नाम पर राइट क्लिक कर सकते हैं, और सामग्री-एन्कोडिंग विकल्प का चयन कर सकते हैं और उस कॉलम (छवि में ब्लैक बॉक्स) को जोड़ सकते हैं।

और यदि आप उस gzip सामग्री का आकार देखना चाहते हैं, तो @Outfast Source के रूप में - आप उस आइकन पर क्लिक कर सकते हैं जो व्यू के बगल में है (छवि में ग्रीन बॉक्स के रूप में प्रदर्शित)।

तो आप देख सकते हैं कि कौन सी सामग्री सक्षम है।

यहां छवि विवरण दर्ज करें


यह एक शानदार उत्तर है, लेकिन <kbd> सामग्री-एन्कोडिंग </ kbd> <kbd> रिस्पॉन्स हेडर्स </ kbd> के तहत स्थानांतरित हो गया है।
डेन डैस्कलेस्क्यू


8

मैंने यह स्क्रिप्ट जूल के उत्तर पर आधारित लिखी है:

#!/bin/bash

URL=$1
PLAIN="$(curl $URL --silent --write-out "%{size_download}\n" --output /dev/null)"
GZIPPED="$(curl $URL --silent -H "Accept-Encoding: gzip,deflate" --write-out "%{size_download}\n" --output /dev/null)"

if test $PLAIN -gt $GZIPPED
then echo "supported"
else echo "unsupported"
fi

उदाहरण:

$ ./script.sh https://example.com/
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.