لماذا في العالم الحقيقي خوادم تفضل gzip على انكماش الترميز?

StackOverflow https://stackoverflow.com/questions/883841

سؤال

نحن نعلم بالفعل وفرغ الترميز هو الفائز على gzip فيما يتعلق سرعة الترميز و فك و ضغط حجم.

فلماذا لا المواقع الكبيرة (التي يمكنني أن أجد) إرسال (عند استخدام متصفح يقبل ذلك) ؟

ياهو المطالبات وفرغ هو "أقل فعالية".لماذا ؟

أنا الحفاظ على ملقم HTTP البرامج التي يفضل فرغ لذا أود أن أعرف إذا كان هناك حقا سبب وجيه لعدم مواصلة القيام بذلك.

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

المحلول

هناك بعض الالتباس حول تسمية بين المواصفات HTTP:

  • وفرغ على النحو المحدد من قبل RFC 1951 هو ضغط تنسيق البيانات.
  • ZLIB على النحو المحدد من قبل RFC 1950 هو ضغط تنسيق البيانات يستخدم وفرغ تنسيق البيانات.
  • GZIP على النحو المحدد من قبل RFC 1952 هو تنسيق الملف يستخدم وفرغ ضغط تنسيق البيانات.

ولكن HTTP يستخدم تسمية مختلفة:

  • gzip ترميز تنسيق تنتجها ضغط الملفات برنامج "gzip" (جنو zip) كما هو موضح في RFC 1952 [25].هذا الشكل هو Lempel-Ziv الترميز (LZ77) مع 32 بت CRC.

  • deflate إن "zlib" تنسيق معرف في RFC 1950 [31] في تركيبة مع "فرغ" آلية ضغط هو موضح في RFC 1951 [29].

إذا خلاصة القول:

  • gzip هو GZIP تنسيق الملف.
  • deflate هو في الواقع ZLIB تنسيق البيانات.(ولكن بعض العملاء لا نقبل أيضا الفعلي وفرغ تنسيق البيانات على deflate.)

انظر أيضا هذا الجواب على السؤال ما الفرق بين "gzip" و "انكماش" HTTP 1.1 ترميزات?:

ما الفرق بين "gzip" و "انكماش" HTTP 1.1 ترميزات?

"gzip" هو gzip الشكل ، و "انكماش" هو zlib الشكل.ينبغي يسمى الثانية "zlib" بدلا لتفادي الخلط مع الخام تخفيض ضغط تنسيق البيانات.في حين HTTP 1.1 RFC 2616 يشير بشكل صحيح إلى zlib مواصفات RFC 1950 ل "فرغ" نقل ترميز كانت هناك تقارير من خوادم المتصفحات التي تنتج بشكل غير صحيح أو نتوقع الخام فرغ البيانات في انكماش specficiation في RFC عام 1951 ، أبرزها مايكروسوفت.وذلك على الرغم من أن "انكماش" نقل الترميز باستخدام zlib الشكل من شأنه أن يكون أكثر فعالية النهج (و في الواقع بالضبط ما zlib تم تصميم تنسيق ل) ، باستخدام "gzip" نقل الترميز هو على الارجح أكثر موثوقية بسبب مؤسفة اختيار اسم على جزء من HTTP 1.1 المؤلفين.

نصائح أخرى

من الحد الأدنى في اختبار يبدو أكثر HTTPds إما:

  1. لا تدعم تنكمش على الطاير:أباتشي mod_deflate (مفاجأة), GWS
  2. أو يفضلون إرسال gzip:IIS ، lighttpd هو mod_compress

لذا إرسال تنكمش على الأكثر شعبية الخادم (أباتشي) ، يجب الحفاظ على ما قبل ترميز الملفات واستخدام mod_negotiate (حتى أنك قد تضطر إلى استخدام نوع خرائط تفضل فرغ).

أعتقد بسبب هذه المتاعب ، وفرغ فقط نادرا ما تستخدم ، وبالتالي الحشرات على الأرجح موجودة في العميل تخفيض الدعم من gzip الدعم.

وتحقق هذا الموقع لمزيد من المعلومات: HTTP: //web.archive. غزاله / الإنترنت / 20120321182910 / HTTP: //www.vervestudios.co/projects/compression-tests


وانكماش، في المواصفات، هو في الواقع زليب (وتنسيق ضغط وضعت خصيصا لتدفق المحتوى عبر الإنترنت). ..which هو التفاف حول يدحض.

وإنترنت إكسبلورر، ولكن بشكل غير صحيح تنفذ HTTP 1.1 يدحض (زليب) كما يدحض الخام. حتى إذا كان الخادم الخاص بك يرسل HTTP الصحيح المحتوى 1.1 يدحض (زليب) إلى IE أنه يغص بها.

ولقد بحثت في الموضوع قليلا ويبدو آمنة لإرسال ALWAYS <م> الخام فرغ لالمتصفحات الحديثة ... فقط تأكد لها هو، في الواقع، <م> الخام وليس زليب.

وتحقق هذه المقالة للحصول على مزيد من المعلومات> ببرنامج Gzip مقابل انكماش (زليب) إعادة النظر .

لذلك أعتقد أن هناك سببا وجيها لمواصلة ارسال يخوي على غزيب.

وكما بقدر أعرف (تنويه: وأنا لست خبيرا هنا، فقط ما سمعت)، يستخدم gzip نفس الخوارزمية كما deflate لكنه لا يملك المزيد من الأشياء التي تجعل من رأس لها حجم أكبر (قريب لdeflate). ومع ذلك، أعتقد أن دعم deflate من أقل العملاء والوكلاء.

وكنت أتساءل نفس الشيء :). وأعتقد أنه قد يكون على علاقة مع توافق القديمة المتصفحات (ربما القديمة). قرأت في مكان ما أن المتصفحات القديمة أكثر عرضة للتسلل خارجا في محتوى بددت أن mod_gzipped في بعض الحالات (؟) ولكن غوغلينغ هذا قادني إلى استنتاج أنه ربما يكون من الأفضل لوقف غوغلينغ ذلك.

وأكشن 3 لديه دعم يدحض الأصلي، ولكن لغزيب تحتاج إلى استخدام مكتبة خارجية

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