Що таке відповідь 304 "Не змінено"?
Код відповіді HTTP-сервера 304 Not Modified означає, що запитуваний ресурс не був змінений з моменту останнього завантаження, тобто немає необхідності передавати його знову. Для браузерів це означає, що користувачеві може бути показана кешована версія ресурсу. Для пошукових роботів, таких як Googlebot, це означає, що немає необхідності повторно переглядати сторінку, оскільки на ній нічого не змінилося.
Як це працює
Ось просте пояснення того, як працює відповідь 304 Not Modified:
-
Початковий запит Коли клієнт (браузер або пошуковий робот) вперше запитує ресурс з веб-сервера, сервер надсилає запитуваний ресурс з HTTP-кодом 200 OK разом з його хеш-кодом, який називається ETag. Клієнт також записує час, коли він запитував сторінку/ресурс.
-
Наступні запити Коли клієнт повторно запитує ресурс, сервер перевіряє заголовки
If-None-Match
та/абоIf-Modified-Since
від клієнта. Це називається умовним HTTP-запитом.If-None-Match
містить ETag (хеш-код контенту). Якщо він збігається зі значенням на сервері, це означає, що вміст не змінився, і немає необхідності завантажувати його знову (коли вміст змінюється, змінюється і його хеш-код).If-Modified-Since
містить дату і час, коли клієнт востаннє запитував контент. Якщо сервер бачить, що вміст не змінювався з цієї дати, немає необхідності надсилати ресурс клієнту.
-
Відповідь сервера В обох випадках, якщо вміст не змінився, сервер відповідає кодом 304 HTTP.
Якщо використовуються обидва варіанти: If-None-Match
та If-Modified-Since
, то If-None-Match
має пріоритет над If-Modified-Since
.
Поведінка браузерів та пошукових роботів
Коли браузер отримує від сервера HTTP-код 304 Not Modified, він показує користувачеві кешовану версію, що робить його одним з кодів перенаправлення на стороні клієнта. Для пошукових роботів отримання відповіді 304 означає, що вони можуть уникнути повторного завантаження того самого вмісту, заощаджуючи пропускну здатність і ресурси.
Чому важливий код відповіді 304?
Для невеликих веб-сайтів переваги кешування, які надає код 304 HTTP, можуть бути не такими значними. Однак для великих веб-сайтів код відповіді 304 має суттєві переваги:
- Оптимізація продуктивності Завдяки використанню кешованого вмісту браузери можуть швидше завантажувати сторінки для користувачів, покращуючи загальний користувацький досвід.
- Управління бюджетом на сканування Для великих сайтів управління бюджетом на сканування має вирішальне значення. Пошуковий робот Google не буде повторно сканувати сторінки, які не змінювалися, що дозволяє йому зосередитися на новому та оновленому контенті. Це допомагає забезпечити більш ефективне індексування свіжого контенту.
Найкращі практики використання 304 не модифікованого
- Встановіть правильні заголовки кешу Переконайтеся, що ваш сервер налаштовано на надсилання відповідних заголовків
ETag
таLast-Modified
. - Відстежуйтеефективність кешу Регулярно перевіряйте журнали сервера, щоб побачити, як часто видаються 304 відповіді, і за потреби коригуйте політику кешування.
- Оптимізуйте доставку конт енту Використовуйте мережі доставки контенту (CDN), які підтримують ефективні механізми кешування, щоб зменшити затримки та пришвидшити час завантаження.
Для отримання більш детальної інформації про коди стану HTTP та найкращі практики для веб-продуктивності та SEO, зверніться до авторитетних джерел, таких як Mozilla Developer Network (MDN) та Google's Web Fundamentals.