Какво представлява отговор 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
съдържа датата и часа, когато клиентът последно е поискал съдържанието. Ако сървърът види, че съдържанието не се е променило от тази дата, не е необходимо да изпраща ресурса на клиента.
-
Отговор на сървъра И в двата случая, ако съдържанието не се е променило, сървърът отговаря с HTTP код 304.
Когато се използват едновременно 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 ) и Web Fundamentals на Google.