2010-09-04 17 views
75

Google पृष्ठ स्पीड में "वेरी: स्वीकृति-एन्कोडिंग" शीर्षलेख निर्दिष्ट करने के लिए कैसे करें Google पेजस्पीड का कहना है कि मुझे जेएस और सीएसएस के लिए "एक वेरी निर्दिष्ट करें: एन्क्रिप्शन-एन्कोडिंग हेडर" होना चाहिए। मैं इसे htaccess में कैसे करूं?.htaccess

+22

सुनिश्चित नहीं हैं कि क्यों यह, बंद हो गया सिर्फ इसलिए कि यह एक प्रोग्रामिंग भाषा इसका मतलब यह नहीं शामिल नहीं करता है कोडिंग से संबंधित नहीं है। –

+0

@ ब्लूराजा-डैनीफ्लूघोफ्ट मैं सहमत हूं, इसे 65100 बार देखा गया है, इसलिए मुझे लगता है कि यह एक अच्छी तरह से खोजा गया विषय है जिसका उल्लेख नहीं है कि मैं प्रतिदिन htaccess प्रश्नों का उत्तर देता हूं। –

+0

मुझे पता है कि यह नरक के रूप में है, लेकिन हेडर 'वेरी: स्वीकृति-एन्कोडिंग' ब्राउज़र को 'सामग्री-एन्कोडिंग' शीर्षलेख के आधार पर पृष्ठ के संस्करण को कैश में स्टोर करने के लिए बताएगा। आपको http://stackoverflow.com/questions/1975416/trying-to-understand-the-vary-http-header और https://developers.google.com/speed/docs/best-practices/caching?hl देखना चाहिए = sv & csw = 1 # LeverageProxyCaching –

उत्तर

84

मुझे लगता है कि इसका मतलब यह है कि आप अपने सीएसएस और जेएस फाइलों के लिए gzip संपीड़न सक्षम करते हैं, क्योंकि इससे क्लाइंट को gzip-encoded सामग्री और सादा सामग्री दोनों प्राप्त करने में सक्षम बनाया जाएगा।

यह कैसे apache2 में यह करने के लिए है:

<IfModule mod_deflate.c> 
    #The following line is enough for .js and .css 
    AddOutputFilter DEFLATE js css 

    #The following line also enables compression by file content type, for the following list of Content-Type:s 
    AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml 

    #The following lines are to avoid bugs with some browsers 
    BrowserMatch ^Mozilla/4 gzip-only-text/html 
    BrowserMatch ^Mozilla/4\.0[678] no-gzip 
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 
</IfModule> 

और यहाँ Vary Accept-Encoding हैडर कैसे जोड़ा जाता है: [src]

<IfModule mod_headers.c> 
    <FilesMatch "\.(js|css|xml|gz)$"> 
    Header append Vary: Accept-Encoding 
    </FilesMatch> 
</IfModule> 

Vary: हैडर बताता सामग्री इस यूआरएल के लिए कार्य किया है कि होगा एक निश्चित अनुरोध शीर्षलेख के मान के हिसाब से बदलता है। यहां यह कहता है कि यह उन ग्राहकों के लिए अलग-अलग सामग्री की सेवा करेगा जो Accept-Encoding: gzip, deflate (एक अनुरोध शीर्षलेख) कहें, उन ग्राहकों को दी गई सामग्री की तुलना में जो इस हेडर को नहीं भेजते हैं। इसका मुख्य लाभ, AFAIK, मध्यवर्ती कैशिंग प्रॉक्सी को यह बताने के लिए है कि उन्हें इस तरह के परिवर्तन के कारण उसी यूआरएल के दो अलग-अलग संस्करणों की आवश्यकता है।

+0

मुझे नहीं लगता कि यह है। मेरा जेएस और सीएसएस पहले ही संपीड़ित है। पेजस्पीड अभी भी शिकायत कर रहा है। – StackOverflowNewbie

+0

मैंने जवाब संपादित किया, इसे जांचें। – aularon

+3

मुझे लगता है कि डिफ़ॉल्ट रूप से वेरी हेडर भेजने के लिए mod_deflate [माना गया] (http://httpd.apache.org/docs/2.0/mod/mod_deflate.html#proxies) है। –

4

मुझे डर है कि एलेरॉन ने प्रक्रिया को पूरा करने के लिए पर्याप्त कदम नहीं दिए हैं। थोड़ा परीक्षण और त्रुटि के साथ, मैं अपने समर्पित डब्ल्यूएचएम सर्वर पर सफलतापूर्वक Gzipping को सक्षम करने में सक्षम था। WHM भीतर

  • भागो EasyApache, संपूर्ण विकल्प सूची के भीतर Deflate चयन करें, और सर्वर के पुनर्निर्माण:

    नीचे कदम हैं।

  • इसके बाद, गोटो सेवा कॉन्फ़िगरेशन >> अपाचे विन्यास >> शामिल संपादक >> पोस्ट VirtualHost शामिल करें, सभी वर्शन चयन करें और फिर शीर्ष पर mod_headers.c और mod_headers.c कोड (Aularon के पोस्ट में ऊपर सूचीबद्ध) पेस्ट इनपुट क्षेत्र के भीतर दूसरे पर।

  • एक बार सहेजे जाने पर, मैं औसतन 75.36% डेटा बचत देख रहा था! आप अपनी खुद की परिणाम देखने के लिए इस HTTP संपीड़न उपकरण का उपयोग करके पहले और परीक्षण के बाद चला सकते हैं: http://www.whatsmyip.org/http_compression/

आशा यह आप सभी के लिए काम करता है!

  • मैट
1

यह मुझे पागल गाड़ी चला रहा था, लेकिन यह है कि aularon के संपादित "Vary" के बाद पेट के याद आ रही थी लगता है। तो "Vary Accept-Encoding" से "Vary: Accept-Encoding" को मेरे लिए समस्या तय कर रही है।

मैंने पोस्ट के नीचे टिप्पणी की होगी, लेकिन ऐसा लगता है कि यह मुझे नहीं देगा।

किसी भी तरह, मुझे उम्मीद है कि यह किसी को भी वही परेशानी बचाएगा जो मैं कर रहा था।

+2

क्या आप वाकई इससे कोई फर्क पड़ता है? 2.2 दस्तावेज़ों में से किसी भी उदाहरण में कॉलन शामिल नहीं है: http://httpd.apache.org/docs/2.2/mod/mod_headers.html –

3

अपनी फ़ॉन्ट फ़ाइलों को भी gzip करने के लिए!

add "x-font/otf x-font/ttf x-font/eot" 

के रूप में:

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml x-font/otf x-font/ttf x-font/eot 
0

निर्दिष्ट या यहाँ तक कि जाँच कर रहा है फ़ाइल/संकुचित किया गया है, आप हर फ़ाइल को भेज सकते हैं, हर अनुरोध पर की आवश्यकता नहीं है।

यह डाउनस्ट्रीम प्रॉक्सी बताता है कि कैसे तय करने के लिए भविष्य अनुरोध हेडर कैश्ड प्रतिक्रिया मूल सर्वर ताजा का अनुरोध करने के बजाय इस्तेमाल किया जा सकता है कि क्या मिलान करने के लिए।

<ifModule mod_headers.c> 
    Header unset Vary 
    Header set Vary "Accept-Encoding, X-HTTP-Method-Override, X-Forwarded-For, Remote-Address, X-Real-IP, X-Forwarded-Proto, X-Forwarded-Host, X-Forwarded-Port, X-Forwarded-Server" 
</ifModule> 
  • unset, पुराने GoDaddy होस्टिंग में कुछ कीड़े को ठीक करने के वैकल्पिक है।
1

किसी NGINX विन्यास फाइल के लिए यह आवश्यक है या यहाँ टुकड़ा है:

location ~* \.(js|css|xml|gz)$ { 
    add_header Vary "Accept-Encoding"; 
    (... other headers or rules ...) 
} 
2

कई घंटे स्पष्ट करने के लिए क्या किया गया था बिताया। उन्नत .HTACCESS कोड प्राप्त करने के लिए कृपया this post पढ़ें और जानें कि वे क्या करते हैं।

आप उपयोग कर सकते हैं:

Header append Vary "Accept-Encoding" 
#or 
Header set Vary "Accept-Encoding"