سؤال

لقد قمت بتمكين ضغط gzip على موقع الويب الخاص بي، وقمت باختباره باستخدام الأدوات التالية:

على الرغم من ذلك، يقول Firefox وجميع ملحقاته (Firebug وYslow وGoogle Page Speed) إنهم يتلقون محتوى غير مضغوط.

يتم ضغط النص/html بواسطة ob_gzhandler الخاص بـ php، والذي يهتم بالرؤوس أيضًا.

أنا لا أستخدم الوكيل.

ما الخطأ الذي افعله؟

هل كانت مفيدة؟

المحلول

هذه ليست الإجابة التي قد تتوقعها حقًا، ولكن هل حاولت عدم ضغط البيانات باستخدام PHP، ولكن باستخدام Apache؟

يمكن القيام بذلك باستخدام mod_deflate.

زوجان من الأشياء:

  • فهذا يعني إجراء حسابات أقل لـ PHP
  • وهذا يعني أيضا (وهذا هو الجزء الأجمل ;-) ) أن ملفات CSS/JS الخاصة بك يمكن ضغطها إلى؛بالنظر إلى حجمها، في الوقت الحاضر، قد لا يكون ضغطها أمرًا سيئًا...


كملاحظة جانبية :لمساعدتنا في معرفة ما هو الخطأ في الضغط بواسطة PHP، هل يمكنك تقديم المزيد من المعلومات؟مثل عنوان URL لموقعك (إذا كان عام), وبعض التعليمات البرمجية؟


قم بالتحرير الآن بعد أن أصبح لدينا عنوان URL : http://ego.pestaa.hu/

عندما أذهب إلى تلك الصفحة، تكون رؤوس الاستجابة كما يلي:

HTTP/1.x 200 OK
Date: Sat, 01 Aug 2009 21:53:37 GMT
Server: Apache
X-Powered-By: PHP/5.2.6
**Content-Encoding: gzip**
Vary: Accept-Encoding
Keep-Alive: timeout=2, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html

(باستخدام فايرفوكس 3.5 مع ملحق LiveHTTPHeaders)

تشير مواقع الاختبار الثلاثة التي أشرت إليها أيضًا إلى أن صفحتك مضغوطة بصيغة gzipped.
هل وجدت ما هي المشكلة؟

هل أنت متأكد من أن هذا ليس شيئًا قادمًا من متصفحك، ولن يرسل الرأس التالي في الطلب:

Accept-Encoding: gzip,deflate

تحرير بعد إجابة أخرى

اقتباس من التعليقات :

من المحتمل أن يكون مصدر المشكلة موقع الويب الخاص بي ، لكن ISP/Browser/Router.قد يقوم أحدهم بإلغاء ضغط كل مكون قبل أن يصل إلى العمليات الداخلية.

أوه، إذا كانت المشكلة لا تتعلق بموقعك على الويب، فأعتقد أنني أساءت فهم السؤال تمامًا - آسف لذلك :-( اعتقدت أنك لا تعرف كيفية خادم المحتوى المضغوط بتنسيق gzipp من موقع الويب الخاص بك.
وأعتقد أنني لست الوحيد، راجع للشغل

إذا كانت المشكلة لا علاقة لها بتكوين موقع الويب الخاص بك، فهناك احتمالان:

  • ربما خطأ في تكوين فايرفوكس؟إذا ذهبت إلى about:config, ، ماذا يكون ال network.http.accept-encoding يقول ؟بالنسبة لي، هو gzip,deflate
  • إذا كانت المشكلة تأتي من مزود خدمة الإنترنت الخاص بك أو شيء من هذا القبيل، فلا يوجد شيء يمكن لأي شخص القيام به ...

نصائح أخرى

جرب ال رؤوس المتشعب الحية البرنامج المساعد فايرفوكس بالإضافة إلى الآخرين.يفتح نافذة تعرض رؤوس الطلب/الاستجابة الدقيقة أثناء رجوعها للأمام، حتى تعرف دون أدنى شك ما هو ترميز القبول وترميز الاستجابة.

هل حاولت فقط تمكين gzip في Apache/خادم الويب الخاص بك بدلاً من ذلك/أيضًا؟

  • هل أنت متأكد من أنك تختبر نفس عناوين URL مع ملحقات Firefox؟
    • سيؤدي استخدام ob_gzhandler في PHP إلى ضغط مخرجات صفحات php الخاصة بك، لكن YSlow وآخرون يحذرونك أيضًا من ملفات css/javascript غير المضغوطة.
  • تأكد من أن المتصفح يرسل الرؤوس الصحيحة.عادةً ما يرسل المتصفح الرسالة "Accept-encoding:gzip" لإخبار البرنامج النصي/خادم الويب بأنه يقبل المحتوى المضغوط.من المؤكد أن البرامج النصية للاختبار سترسل ذلك ولكن متصفحك قد لا يرسل ذلك.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top