412 Ошибка предварительного условия
412 Ошибка предварительного условия
Ошибка клиента протокола HyperText Transfer Protocol (HTTP) 412 Precondition Failed указывает на то, что доступ к целевому ресурсу запрещён. Это происходит при условных запросах методами, отличными от GET или HEAD, когда условие, определённое заголовками If-Unmodified-Since или If-None-Match, не выполняется. В этом случае запрос, как правило, загрузка или изменение ресурса, не может быть выполнен, и в ответ отправляется данная ошибка.
Статус
412 Precondition Failed
Примеры
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4" ETag: W/"0815"
Избежание конфликтов при одновременном редактировании
С помощью заголовков ETag и If-Match можно обнаружить конфликты редактирования.
Например, при редактировании MDN текущее содержимое вики хэшируется и помещается в Etag в ответе:
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"
При сохранении изменений на странице вики (пост данных) запрос POST будет содержать заголовок If-Match с ETag значениями для проверки актуальности данных.
If-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"
Если хэши не совпадают, это означает, что документ был изменён между запросами, и возникает ошибка 412 Precondition Failed.
Спецификации
| Спецификация |
|---|
| Семантика HTTP # status.412 |
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari на iOS | Samsung Internet | |
412 |
Да |
12 |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Нижеприведённая информация была взята из репозитория MDN на GitHub (https://github.com/mdn/browser-compat-data).
См. также
© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/412