GZIP এর চেয়ে কমপ্রেস ব্রাউজারের সামঞ্জস্যতা এবং সুবিধাগুলি ডিফল্ট করুন


91

আপডেট 10 ফেব্রুয়ারী 2012:

zOompf এখানে এই বিষয়টি সম্পর্কে খুব গভীরভাবে কিছু গবেষণা সম্পন্ন করেছে । এটি নীচের যে কোনও অনুসন্ধানকে ট্রাম্প করে।


আপডেট 11 সেপ্টেম্বর 2010:

এখানে এটির জন্য একটি পরীক্ষামূলক প্ল্যাটফর্ম তৈরি করা হয়েছে




কিছু ব্যাকগ্রাউন্ড তথ্যের জন্য GZIP এবং ডিফল্ট (zlib) এর HTTP 1.1 সংজ্ঞা:

"'জিজিপ' হ'ল জিজিপ ফর্ম্যাট এবং 'ডিফল্ট' হ'ল জ্লিব ফর্ম্যাট । কাঁচা ডিফল্ট সংকুচিত ডেটা ফর্ম্যাটের সাথে বিভ্রান্তি এড়াতে তাদের সম্ভবত দ্বিতীয়টি 'জ্লিবিব' বলা উচিত ছিল। অন্যদিকে HTTP 1.1 আরএফসি 2616 সঠিকভাবে নির্দেশ করে 'ডিফল্ট' ট্রান্সফার এনকোডিংয়ের জন্য আরএফসি 1950-এর জ্লিব স্পেসিফিকেশন, সার্ভার এবং ব্রাউজারগুলির প্রতিবেদন রয়েছে যেগুলি আরএফসি 1951 সালে সর্বাধিক উল্লেখযোগ্যভাবে মাইক্রোসফ্ট পণ্যগুলিতে ডিফল্ট স্পেসিফিকেশন অনুযায়ী কাঁচা ডিফল্ট ডেটা ভুলভাবে উত্পাদন বা প্রত্যাশা করে So zlib ফর্ম্যাট ব্যবহার করে ট্রান্সফার এনকোডিং করা হবে আরও কার্যকর পদ্ধতির ( এবং বাস্তবে zlib ফর্ম্যাটটির জন্য কী নকশা করা হয়েছিল), এইচটিটিপি ১.১ লেখকের অংশ হিসাবে দুর্ভাগ্যজনক নামের কারণে 'জিজিপ' ট্রান্সফার এনকোডিংটি সম্ভবত আরও নির্ভরযোগ্য। "(উত্স: http://www.gzip.org/zlib/zlib_faq.html )

সুতরাং, আমার প্রশ্ন: যদি আমি কোনও জালিব মোড়কের (বা গিজিপ) সাথে র ডিফল্ট ডেটা প্রেরণ করি তবে এমন কোনও আধুনিক ব্রাউজার রয়েছে (যেমন, আই 6 এবং আপ, এফএফ, ক্রোম, সাফারি ইত্যাদি) যা কাঁচা ডিফল্টটি বুঝতে পারে না সংকুচিত ডেটা (এইচটিটিপি অনুরোধ শিরোনাম "স্বীকৃতি-এনকোডিং" "ডিফ্লেট" ধারণ করে)?

ডিফল্ট ডেটা সবসময় জিজেআইপি থেকে কয়েক বাইট ছোট হবে।

এই সমস্ত ব্রাউজারগুলি যদি ডেটা সাফল্যের সাথে ডিকোড করতে পারে, তবে জ্লিবের পরিবর্তে র ডিফল্ট প্রেরণে কোন ডাউনসাইড রয়েছে?



আপডেট 11 সেপ্টেম্বর 2010:

এখানে এটির জন্য একটি পরীক্ষামূলক প্ল্যাটফর্ম তৈরি করা হয়েছে


4
আপনি zlib.net এর সাথে তুলনা করে System.IO.Compression.DeflateStream সাফল্য কেন এটিকে বাড়িয়ে তুলতে আপত্তি করবেন? "একজন ব্যক্তি উল্লেখ না করে" গুগল আমাকে প্রাসঙ্গিকভাবে খুব বেশি দেখায় না "বিশেষত ভাল সংকোচনের অনুপাত নেই।"
জোয়েল মুয়েলার

ঠিক আছে,। নেট এর জিজিপ এবং ডিফল্ট উভয় পদ্ধতির উভয়ের জন্য সংক্ষেপণ অনুপাতটি তাদের হওয়া উচিত বলে মনে হয় না। তবে, আমি দুটি (zlib.net বনাম। নেটিভ। নেট) এর মধ্যে কোনও গতির বেঞ্চমার্ক করিনি।
ডেভিড মারডোক

আপনি কেন কেবল আপনার পরীক্ষার কেসের ফলাফল লগ করবেন না?
গম্বো

4
আমি System.IO.Compression lib এ ঘুরে দেখছি, এবং এটি একটি স্ট্যাটিক / প্রাক-সংজ্ঞায়িত ট্রি ব্যবহার করেছে বলে মনে হচ্ছে thus সুতরাং নির্দিষ্ট প্রবাহের জন্য সংক্ষেপণটি অনুকূলিত হয় না। দ্রুততম পদ্ধতি হওয়া উচিত, তবে অবশ্যই কম সংকোচনের অনুপাত পাওয়া যাবে।
ব্র্যাডি মরিটজ

4
@ জোয়েলমুয়েলার এটি ব্যাখ্যা করতে পারে: ভার্চুয়ালডব.আর.জি.
ব্লগ

উত্তর:


37

আপডেট: ব্রাউজারগুলি কাঁচা ডিফল্টের জন্য সমর্থন বাদ দিচ্ছে। zOompf এখানে এই বিষয়টি সম্পর্কে খুব গভীরভাবে কিছু গবেষণা সম্পন্ন করেছে দুর্ভাগ্যক্রমে, এটি প্রদর্শিত হয় যে কাঁচা ডিফল্ট ব্যবহার করা নিরাপদ নয়।


পরীক্ষা করে দেখুন http://www.vervestudios.co/projects/compression-tests/results আরো ফলাফলের জন্য।

এখানে ব্রাউজারগুলি পরীক্ষা করা হয়েছে:

/*  Browser                       DEFLATE      ZLIB     */
    XP Internet Explorer 6        PASS         FAIL
    XP Internet Explorer 7        PASS         FAIL
    XP Internet Explorer 8        PASS         FAIL
    Vista Internet Explorer 8     PASS         FAIL
    XP Firefox 3.6.*              PASS         PASS
    XP Firefox 3.5.3              PASS         PASS
    XP Firefox 3.0.14             PASS         PASS
    Win 7 Firefox 3.6.*           PASS         PASS
    Vista Firefox 3.6.*           PASS         PASS
    Vista Firefox 3.5.3           PASS         PASS
    XP Safari 3                   PASS         PASS
    XP Safari 4                   PASS         PASS     
    XP Chrome 3.0.195.27          PASS         PASS
    XP Opera 9                    PASS         PASS
    XP Opera 10                   PASS         PASS
    XP Sea Monkey 1.1.8           PASS         PASS
    Android 1.6 Browser (v4)*     N/A          N/A
    OS-X Safari 4                 PASS         PASS
    OS X Chrome 7.0.517.44        PASS         PASS
    OS X Opera 10.63              PASS         PASS
    iPhone 3.1 Safari             PASS         PASS

* অ্যান্ড্রয়েড এইচটিটিপি অনুরোধ শিরোনাম "স্বীকৃতি-এনকোডিং: জিজিপ" প্রেরণ করে। Deflate অনুমোদিত নয়।


আমি উপসংহারে পৌঁছেছি যে আমরা সর্বদা কাঁচা ডিফল্ট প্রেরণ করতে পারি (যখন HTTP অনুরোধ শিরোনাম "স্বীকৃতি-এনকোডিং" "ডিফলেট" থাকে) এবং ব্রাউজারটি এনকোডড ডেটার সঠিকভাবে ব্যাখ্যা করতে সক্ষম হবে। কেউ কি এই ভুল প্রমাণ করতে পারে?

দ্রষ্টব্য:। নেট এর নেটিভ বাস্তবায়ন ডিফল্ট (System.IO.Compression.DeflateStream) কাঁচা ডিফল্ট। এটিও চুষে দেয়। আপনার সমস্ত নেট নেটফ্ল্যাটিং প্রয়োজনীয়তার জন্য zlib.net ব্যবহার করুন ।


4
Deflating জন্য zlib.net ব্যবহার সম্পর্কে আপনি আরও নির্দিষ্ট হতে পারেন? এটি কীভাবে উপরের চিত্রের সাথে মেলে, যেখানে এটি বলে যে কাঁচা ডিফল্ট কাজ করে তবে কিছু এক্সপি আই ক্ষেত্রে zlib কাজ করে না?
ডেভিড আইসন

: Android এর সমর্থন যেহেতু এপিআই 9. দেখুন কম্প্রেশন চুপসে developer.android.com/reference/java/util/zip/... আরও তথ্যের জন্য
স্টুয়ার্ট Blackler

4
@ ডেভিড মুরডোক আপনার পরীক্ষাগুলির একমাত্র বুদ্ধিমান ফলাফলটি কখনও ডিফ্লেট , ভার্ভেস্টুডিওস.কম / প্রজেক্টস / কমপ্রেসন-টেস্টস / রেজাল্ট ব্যবহার করবেন না বলে মনে করি এই উত্তরটি প্রতিফলিত করার জন্য সম্পাদনা করা উচিত
স্যাম সাফ্রন

হ্যাঁ, আমি একমত। এখনই এটি আপডেট করা।
ডেভিড মারডোক

6

অ্যান্ড্রয়েড 1.6 ব্রাউজার (ভি 4) আপনার পৃষ্ঠায় জেলিব এবং ডিলেটটি পরীক্ষা উভয়ই ব্যর্থ করে। আমি এটিকে আপনার তালিকায় যুক্ত করেছি।


ধন্যবাদ! অ্যান্ড্রয়েডের ব্রাউজারটি কোন সামগ্রী-এনকোডিং পাঠায়?
ডেভিড মারডোক

এটি 'স্বীকৃতি-এনকোডিং: জিজিপ' প্রেরণ করে।
জোসেফ ফ্লেগার

1

এটা কি AddOutputFilterByType DEFLATEমোড_ডিফলেট ব্যবহার করে ডিফল্টরূপে জিজিপ দ্বারা প্রেরণ করে?


4
আরে পল, আমার মনে হচ্ছে আমি কোনও সেলিব্রিটির সাথে কথা বলছি ... আপনি সর্বত্র আছেন। :-) যাহাই AddOutputFilertByType DEFLATEহউক না কেন, প্রতিক্রিয়াটিকে ডিফল্টরূপে ডিফ্লেট করার পরিবর্তে (যতদূর আমি জানি) গিজপ্স। Gzipহয় deflateযার মানে - একটি 10 বাইট হেডার + 8 থেকে বাইট পাদচরণ + Gzipসর্বদা চেয়ে বড় হতে হবে deflate... কেন আমরা কখনও gzip, ব্যবহার করা উচিত? ( জিজিপ কী তৈরি তা ভাঙ্গার জন্য en.wikedia.org/wiki/Gzip# ফাইল_ফর্ম্যাট দেখুন )। এই বলে, আমি deflateঅ্যাপাচে পছন্দসই সংক্ষেপণ পদ্ধতি হিসাবে কীভাবে সেটিং সম্পর্কে যেতে হবে তা নিশ্চিত নই ।
ডেভিড মারডোক

-1

যতদূর আমি জানি, হ্যাঁ - বেশ আপনি "সর্বদা কাঁচা ডিফল্ট প্রেরণ করতে পারেন এবং সবকিছু ঠিক থাকবে" ... "সর্বদা" হয় না, তবে বেশিরভাগ ক্ষেত্রেই হয়। যদি না হয় তবে এটি ব্রাউজারের সমস্যা।


কাঁচা অপসারণ ব্যর্থ হলে আমি মামলাগুলি অনুসন্ধান করার চেষ্টা করছি। নির্দিষ্ট হিসাবে এটি সমস্ত ব্রাউজারে ব্যর্থ হওয়া উচিত।
ডেভিড মারডোক

কাঁচা deflate(অর্থাত না zlib , সব সময়ে কোন হেডার) একমাত্র কাজ হবে IE7 যদি encoding:gzipএবং (শুধুমাত্র Chrome v24 পরীক্ষিত) encoding:deflateমধ্যে ক্রোম
স্কটি ডটনেট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.