Статус HTTP: 409 против 428
Из списка кода статуса HTTP (Википедия) говорится:
409 конфликт
Указывает, что запрос не может быть обработан из-за конфликта в запросе, такого как конфликт редактирования между несколькими одновременными обновлениями.
А также
428 Требуется предварительное условие (RFC 6585)
Исходный сервер требует, чтобы запрос был условным. Предназначен для предотвращения проблемы "потерянных обновлений", когда клиент ПОЛУЧАЕТ состояние ресурса, изменяет его и возвращает обратно на сервер, когда тем временем третье лицо изменило состояние на сервере, что привело к конфликту ".
Однако разве проблема "потерянных обновлений", упомянутая в пункте 428, не является проблемой "конфликта редактирования", упомянутой в пункте 409?
Итак, вопрос в том, каковы различия между двумя кодами состояния и когда мы должны использовать какой из них?
1 ответ
Вы отправляете 428, чтобы указать клиенту, что вы принимаете только условные запросы.
(Условные запросы - это те, которые содержат "условные" поля заголовка запроса, как описано в https://www.greenbytes.de/tech/webdav/rfc7232.html).