Статус HTTP: 409 против 428

Из списка кода статуса HTTP (Википедия) говорится:

409 конфликт

Указывает, что запрос не может быть обработан из-за конфликта в запросе, такого как конфликт редактирования между несколькими одновременными обновлениями.

А также

428 Требуется предварительное условие (RFC 6585)

Исходный сервер требует, чтобы запрос был условным. Предназначен для предотвращения проблемы "потерянных обновлений", когда клиент ПОЛУЧАЕТ состояние ресурса, изменяет его и возвращает обратно на сервер, когда тем временем третье лицо изменило состояние на сервере, что привело к конфликту ".

Однако разве проблема "потерянных обновлений", упомянутая в пункте 428, не является проблемой "конфликта редактирования", упомянутой в пункте 409?

Итак, вопрос в том, каковы различия между двумя кодами состояния и когда мы должны использовать какой из них?

1 ответ

Решение

Вы отправляете 428, чтобы указать клиенту, что вы принимаете только условные запросы.

(Условные запросы - это те, которые содержат "условные" поля заголовка запроса, как описано в https://www.greenbytes.de/tech/webdav/rfc7232.html).

Другие вопросы по тегам