كيفية استخدام GZIP
-
01-10-2019 - |
سؤال
هل يمكن لأي شخص يستخدم GZIP لـ HTML و JS و PHP و CSS أن يشرح كيفية تنفيذ هذا على الخادم؟
ما أريد أن أعرفه هو:
- ماذا علي أن أكتب في .htaccess؟
- ماذا ومن أي مصدر يجب أن أقوم بتنزيله؟
- الأهم: هل تحدث فرقًا وهل يؤتي ثماره؟
المحلول
تحتاج إلى تمكين 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 وقتًا للتشغيل ، يجب ألا تنشط الضغط على الأرجح.
لا يزال هناك الكثير من الآثار الوضعية للضغط.