SEO термин

412 Precondition Failed (Статус код 412 Неизпълнено предварително условие)

Едно или повече условия, зададени в хедърите на заявката, са оценени като неверни от сървъра.

412 Precondition Failed е HTTP статус код, който означава, че едно или повече предварителни условия в хедърите на заявката не са изпълнени. Той се използва при условни заявки, когато клиентът казва на сървъра да извърши действие само ако ресурсът отговаря на конкретно състояние, например определена версия, дата на промяна или ETag стойност.

Какво означава 412 Precondition Failed?

Сървърът връща 412, когато условието в хедъри като If-Match, If-Unmodified-Since или подобни не е вярно. Това е полезно за защита от презаписване на нови данни със стари версии. Клиентът може да поиска обновяване само ако ресурсът не е променян след даден момент. Ако междувременно е настъпила промяна, сървърът отказва операцията с 412.

Защо е важно за SEO?

При нормално обхождане търсачките по-често използват условни GET заявки, за да проверят дали съдържанието е променено. Ако сървърът неправилно връща 412 за публични страници, вместо подходящ отговор като 200 или 304 Not Modified, това може да обърка обхождането и кеширането. Кодът е важен и при headless архитектури, CDN слоеве и CMS интеграции, където остарели ETag или неправилни cache правила могат да спрат обновяване на съдържание.

Пример

Административен интерфейс изпраща заявка за редакция с If-Match хедър, съдържащ стара ETag стойност. Сървърът сравнява стойността с текущата версия на ресурса и установява, че страницата вече е променена. Вместо да презапише чужда промяна, той връща 412 Precondition Failed и клиентът трябва да зареди новата версия.

Чести грешки

  • Неправилно конфигурирани ETag стойности между CDN и origin сървър.
  • Използване на условни хедъри без обработка на отказа в клиента.
  • Връщане на 412 към crawler заявки за публични HTML страници.
  • Смесване на 412 с 409 Conflict, въпреки че 412 е свързан с конкретно условие в заявката.

Свързани понятия

Свързани са ETag, conditional requests, If-Match, If-None-Match, Last-Modified, 304 Not Modified, cache validation и 409 Conflict. Анализът изисква преглед на HTTP хедърите, кеширащите слоеве и поведението на клиента при повторна заявка.

Каква е причината за 412 Precondition Failed?

Причината е неизпълнено условие, зададено в HTTP хедърите на заявката.

С какво 412 се различава от 304 Not Modified?

304 потвърждава, че кешираното копие още е валидно, а 412 отказва заявка, защото зададено условие не е изпълнено.