Накратко
Gzip и Brotli могат да намалят размера на прехвърляния ресурс. Разграничението между формата на съдържанието и кодирането му помага при проверка на реалния резултат.
Полезно е да знаеш
Дълъг текст може да съдържа много повторения: едни и същи думи, знаци и части от структурата. Компресията използва подобни закономерности, за да представи данните по-компактно. При уеб прехвърлянето това позволява сървърът да изпрати по-малко байтове, а браузърът да възстанови съдържанието. MDN различава компресия на самия файлов формат, компресия на HTTP съдържанието и обработка на отделна връзка. Тези нива са свързани, но настройката на едното не описва автоматично останалите. [1]
Заглавката Content-Encoding съобщава какви преобразувания са приложени към ресурса и в какъв ред. Например gzip и br обозначават различни начини на компресиране. Content-Type има друга задача: описва медийния тип на възстановеното съдържание. [2] Така HTML документ, изпратен компресиран, продължава да е HTML документ. Объркването между тези две заглавки води до погрешни изводи, сякаш всеки компресиран отговор трябва да се изтегли като архив, който посетителят ръчно да разопакова на своя компютър.
Компресията без загуби позволява възстановяване на първоначалните данни. Тя трябва да се разграничава от обработка на снимка, при която част от информацията съзнателно се променя. Различните файлови формати използват различни подходи, а вече компресираното съдържание може да не спечели от допълнителен общ алгоритъм. [1] Затова едно правило за всички файлове не е достатъчно обяснение за добра производителност. Текстов документ и фотография поставят различни задачи, дори да пристигат през една и съща уеб услуга.
Когато е зададен Content-Encoding, стойности като Content-Length се отнасят до кодираната форма, освен ако изрично не е посочено друго. Повторната компресия на архив или JPEG може дори да увеличи размера. [2] Това е полезно при прочит на измерванията: размерът по мрежата и размерът след възстановяване не са едно и също число. По-малката стойност не означава липсващи абзаци. Тя може да показва по-компактно представяне на същите данни по време на пренасянето им до клиента.
За собствен пример можем да сравним текстова страница в два режима на сървъра. Запазваме съдържанието и гледаме прехвърления обем, заглавките и времето за зареждане. После повтаряме с изображение, което вече е ефективно кодирано. Очакването не трябва да бъде еднакъв процент спестяване. Самото измерване има смисъл само ако е ясно кой ресурс се сравнява и дали останалите условия са сходни. Иначе кеширан отговор или друга версия на файла може да бъде сбъркана с резултат от компресията.
Практичният подход започва с представителни ресурси от действителния сайт. Проверява се какво получава браузърът, а после дали правилата се прилагат последователно. По-силната обработка също има изчислителна цена, така че размерът не е единствената величина в цялата система. Целта е добре работещо прехвърляне за реалните посетители. Познаването на разликата между формат, кодиране и измерен обем помага настройките да се оценяват по резултат, вместо само по наличието на отметка „компресия“ в контролния панел.
Източници
За повече подробности и проверка на информацията: