← Статьи

HTTP FIELD GUIDE

Методы HTTP и идемпотентность

Узнайте смысл методов HTTP и когда запрос можно повторить.

Что означает метод?

Метод описывает действие. GET получает представление ресурса, HEAD — только метаданные. POST передаёт данные на обработку, PUT заменяет ресурс, DELETE запрашивает удаление. Сервер может ответить 405, если конкретный ресурс не поддерживает метод.

Безопасность и идемпотентность

Безопасный метод предназначен для чтения. Идемпотентный метод при повторении должен иметь тот же эффект для сервера. GET и HEAD обладают обоими свойствами. PUT и DELETE идемпотентны по определению, хотя ответы могут различаться. POST обычно не идемпотентен.

Что делать при тайм-ауте?

Тайм-аут не доказывает, что сервер не выполнил операцию. Повторный POST может создать два заказа. Для безопасного повтора записи используйте поддерживаемый API ключ идемпотентности или сначала проверьте состояние ресурса. Название метода не гарантирует корректную реализацию сервера.

Источники