سؤال

هل يمكن لأي شخص يستخدم GZIP لـ HTML و JS و PHP و CSS أن يشرح كيفية تنفيذ هذا على الخادم؟

ما أريد أن أعرفه هو:

  1. ماذا علي أن أكتب في .htaccess؟
  2. ماذا ومن أي مصدر يجب أن أقوم بتنزيله؟
  3. الأهم: هل تحدث فرقًا وهل يؤتي ثماره؟
هل كانت مفيدة؟

المحلول

تحتاج إلى تمكين mod_deflate أو mod_gzip على httpd.conf. بعد ذلك ، يجب عليك وضع الأسطر التالية في ملف التكوين أو .htaccess.

Apache 1.3.x:

mod_gzip_on Yes  

mod_gzip_item_include mime ^application/x-javascript$  
mod_gzip_item_include mime ^application/json$  
mod_gzip_item_include mime ^text/.*$  

mod_gzip_item_include file \.html$  
mod_gzip_item_include file \.php$  
mod_gzip_item_include file \.js$  
mod_gzip_item_include file \.css$  
mod_gzip_item_include file \.txt$  
mod_gzip_item_include file \.xml$  
mod_gzip_item_include file \.json$  

Header append Vary Accept-Encoding

Apache 2.0

AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-javascript application/json   
Header append Vary Accept-Encoding

نصائح أخرى

إنها تؤتي ثمارها: يمكن في كثير من الأحيان ضرب صفحات HTML ، كونها نصًا واضحًا ، بنسبة تصل إلى 90 في المائة.

عادة ما يحتاج Gzipping إلى تنشيطه في تكوين الخادم المركزي ، على الرغم من أنه لا .htaccess.

إذا كنت على خادم استضافة مشترك ، فمن المحتمل أن يتم تثبيته بالفعل وتشغيله.

استخدم شيء مثل علامة التبويب "Net" لـ Firebug لمعرفة ذلك. تقديم طلب إلى صفحة على الخادم الخاص بك ، وانقر فوق فتح عرض الملف. إذا كانت رؤوس الاستجابة تحتوي Content-Encoding: gzip, ، gzipping تم تنشيطه بالفعل.

هل تؤتي ثمارها؟ هناك سيناريوهات ، حيث ستكون أبطأ مع تشغيل الضغط ..

عند تشغيل الضغط ، يحتاج Apache إلى الانتظار ، حتى يتم الانتهاء من كل PHP ، قبل الإرسال أي محتوى للعميل. مع إيقاف الضغط ، يمكن أن يبدأ Apache في الإرسال ، مع بيان الصدى الأول.

بسبب هذا ، قد يحصل العميل على قسم الرأس بسرعة ، حيث يحصل على المعلومات التي يجب تحميلها و JS لتحميلها ويمكن أن تطلبها ، في حين أن بقية البرنامج النصي PHP لا يزال يولد HTML.

لذلك عندما يستغرق PHP وقتًا للتشغيل ، يجب ألا تنشط الضغط على الأرجح.

لا يزال هناك الكثير من الآثار الوضعية للضغط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top