Какие HTTP-методы вы знаете? Чем GET отличается от POST?
- Что такое идемпотентность HTTP-метода?
- Чем PUT отличается от PATCH?
GET — получить данные, POST — создать или отправить, PUT — заменить целиком, PATCH — изменить частично, DELETE — удалить.
- GET передаёт параметры в URL и не должен менять данные; POST — в теле запроса
- Идемпотентный метод — повторный вызов даёт тот же эффект: GET, PUT, DELETE — да, POST — нет
А ещё Отсюда тест: повторная отправка формы (двойной клик) не должна создавать дубль
Подробно
Основные методы в REST API:
- GET — получить ресурс. Параметры — в строке запроса (
?page=2). Безопасный — не меняет данные; ответ можно кэшировать; URL с параметрами остаётся в истории и логах, поэтому пароли так не передают. - POST — создать ресурс или выполнить действие. Данные — в теле запроса.
- PUT — заменить ресурс целиком данными из запроса.
- PATCH — изменить отдельные поля.
- DELETE — удалить.
- Реже: HEAD (только заголовки), OPTIONS (какие методы доступны, используется браузером для CORS).
Идемпотентность — повторный одинаковый запрос не меняет результат после первого. GET, PUT, DELETE идемпотентны: удалить уже удалённое — тот же итог. POST нет: два одинаковых POST создадут два заказа.
Для тестировщика это источник проверок: двойная отправка формы, повтор запроса при плохой сети, кнопка «назад» после оплаты, GET-запрос, который вдруг меняет данные.
Пример
GET /api/orders/15 — получить заказ. POST /api/orders с телом {"items": [...]} — создать заказ. PATCH /api/orders/15 с {"status": "cancelled"} — отменить. Проверка: отправить POST дважды быстро — должен создаться один заказ или второй запрос должен быть отклонён.
Что хотят услышать
- Основные методы и их назначение.
- Где передаются данные в GET и POST.
- Идемпотентность и её практическое значение.
- PUT против PATCH — плюс.
Частые ошибки
- «POST безопаснее GET, потому что данные спрятаны» — без HTTPS они видны так же.
- Не знать, что такое идемпотентность.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✓GET читает, POST создаёт; POST не идемпотентен
- ✗POST идемпотентен, а PUT — нет, поэтому повторная отправка формы всегда безопасна
- ✗GET может менять данные — главное, чтобы параметры были в URL
- ✗GET передаёт параметры в теле запроса, POST — в URL
Что спросят дальше
Разбор темы
- HTTP и HTTPS — методы, коды ответа, версии
Методы и идемпотентность, группы кодов ответа, REST, отличия HTTP/1.1, HTTP/2 и HTTP/3, как HTTPS защищает соединение.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.