لماذا في العالم الحقيقي خوادم تفضل gzip على انكماش الترميز?
-
22-08-2019 - |
سؤال
نحن نعلم بالفعل وفرغ الترميز هو الفائز على 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 إما:
- لا تدعم تنكمش على الطاير:أباتشي mod_deflate (مفاجأة), GWS
- أو يفضلون إرسال 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 لديه دعم يدحض الأصلي، ولكن لغزيب تحتاج إلى استخدام مكتبة خارجية