Оптимізація блогу за допомогою GZIP стиснення

556

Стиснення простий і ефективний спосіб збільшити швидкість роботи вашого блогу. На дворі 21 століття, а це означає, що більшість людей користуються сучасними браузерами і швидким інтернетом. Саме ці фактори і диктують вебмайстрам подбати про своїх блогах і зробити все можливе, що б коли користувач потрапить на їх блозі не чекав завантаження сторінки занадто довгий час.

Навіщо ми це робимо?

Перш ніж почнемо, я не хочу багато пояснити й наочно показати, що відбувається далеко від наших очей, коли спілкуються між собою браузер і сервер. Припустимо ми заходимо на головну сторінку мого блогу http://allproall.com І браузер починає спілкуватися з сервером ось так:

  • Браузер: Привіт, GET мені / index.html
  • Сервер: Добре, зараз перевірю якщо є index.html
  • Сервер: Знайшов! Статус відповів (200 ОК), я посилаю файл.
  • Браузер: 100KB??? Ого!, гаразд, я почекаю, все ще чекаю…, завантажений
  • Як бачите, все працює, але все таки, особисто я думаю, що вага переданої сторінки великий і знову таки відвідувач повинен чекати поки відкриється запитувана сторінка.

    Так в чому ж проблема?

    В принципі все працює, браузер чекає поки сервер передасть йому 100KB запитуваної сторінки. Але чи нормально це? Думаю, що це не дуже ефективно і це треба виправляти. Швидше за все така вага сторінки виходить із за великої кількості тексту в HTML коді, занадто багато зайвого, того, що можна вкоротити. Так, що ж робити якщо файл великий? Відповідь проста, заархивируем сторінку. А чому б і ні?

    Ми відправимо в браузер архів, який важить набагато менше, старого доброго index.html. Всі сучасні браузери вміють працювати з архівами, відривати їх і відображати. Цим самим ми зекономимо час передачі файлу, його вага, а так само найголовніше час очікування відвідувача блогу, який не дуже бажає чекати повільної і довгої завантаження сторінки.

    І так ми заархивировали наш index.html. І пробуємо знову відіслати запит на сервер, для отримання потрібної нам сторінки:

  • Браузер: Привіт, GET мені / index.html
  • Сервер: Зараз знайду запитуваний файл. Знайшов. Приймеш?
  • Сервер: Відмінно, я знайшов index.html статус (200 ОК), стискаю і передаю.
  • Браузер: Відмінно! Всього 10 KB. Зараз распакую і загружу користувачеві.
  • Як ми бачимо, формула дуже проста: малий розмір файлу + швидкість завантаження = задоволений користувач.

    Налаштування сервера

    Контролювати наш браузер ми не можемо. Або він приймає архів або ні. Тут як кажуть всім користувачам не догодити. Але всі нові браузери давно вміють працювати з gzip. І так давайте налаштуємо стиснення файлу на сервері.

    У Apache, дане стиснення налаштовується дуже просто. Додайте наступні рядки коду в файл Htaccess.:
    {code type=php}# compress text, html, javascript, css, xml: AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript # Or, compress certain file types by extension: SetOutputFilter DEFLATE {/code}

    Після того як ви налаштували ваш сервер, перевірте, щоб переконатися, що ви насправді отримуєте стислий контент.

    Проблеми

    Стиск це добре, але існує ряд проблем з якими ви можете зіткнутися. І їх треба обов’язково врахувати:

    • Старі браузери: Саме старі браузери не можуть працювати з жатым контентом.
    • Вже стислий контент: Більшість зображень, музики та відео вже стиснуті. Не витрачайте час стискаючи їх знову.
    • CPU-навантаження: Стискання контенту на льоту використовує процесорний час і зберігає пропускну здатність. Зазвичай це великий компроміс, враховуючи швидкість стиснення. Є способи попереднього стиснення статичного контенту і відправка. Це вимагає додаткової настройки, навіть якщо це не представляється можливим, стискаючи контент ви все одно виграєте час. Навантаження процесора для більш швидкої роботи користувачів, дорогого коштує, враховуючи коротку тривалість часу очікування відвідувачем, але воно того варте!

    Включення стиснення є одним з найшвидших способів підвищення продуктивності вашого сайту. Спробуйте, налаштувати його і нехай ваші користувачі отримують задоволення.

    Тепер питання до вас: чи Використовуєте ви стиснення на своєму блогу? Чи може ви це робите як то по іншому? Може плагіном? Чекаю ваших відповідей