Какие знаешь HTTP-методы
Разбор вопроса «Какие знаешь HTTP-методы» для Frontend Developer: что проверяет интервьюер, ключевые тезисы, практические примеры и частые ошибки.
Вопрос
Какие знаешь HTTP-методы
Профессия
Frontend Developer
Что хочет услышать интервьюер
Интервьюер хочет убедиться, что кандидат понимает основные HTTP-методы, их назначение, безопасность и идемпотентность. Также важно, чтобы кандидат мог объяснить разницу между похожими методами (например, PUT и PATCH).
Ключевые тезисы
- GET — запрос данных от сервера. Безопасный (не изменяет состояние сервера) и идемпотентный.
- POST — отправка данных на сервер для обработки. Не безопасный и не идемпотентный (может создавать новые ресурсы).
- PUT — полное обновление ресурса. Идемпотентный, но не безопасный (изменяет состояние сервера).
- PATCH — частичное обновление ресурса. Не идемпотентный и не безопасный.
- DELETE — удаление ресурса. Идемпотентный, но не безопасный.
- HEAD — аналогичен GET, но возвращает только заголовки без тела. Полезен для проверки доступности ресурса.
- OPTIONS — возвращает поддерживаемые методы для ресурса. Используется в CORS.
- TRACE — диагностический метод, возвращает полученный запрос. Используется для отладки.
- CONNECT — используется для установки туннеля (например, для HTTPS через прокси).
Подробный ответ
HTTP-методы — это набор операций, которые клиент может выполнить на сервере для взаимодействия с ресурсами. Они являются основой RESTful API и определяют, какие действия можно выполнять с данными. Основные методы включают GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS, TRACE и CONNECT. Каждый из них имеет свои особенности и предназначение. Например, GET используется для получения данных, POST — для создания новых ресурсов, PUT — для полного обновления ресурса, а PATCH — для частичного обновления. Важно понимать, что некоторые методы, такие как GET и HEAD, считаются безопасными, так как они не изменяют состояние сервера, а другие, например POST и DELETE, могут изменять данные. Также важно учитывать идемпотентность методов: например, PUT и DELETE являются идемпотентными, так как многократное выполнение этих операций не приведет к изменению результата.
Практические примеры
Пример 1
Использование GET для получения данных. Например, запрос GET /api/users вернет список всех пользователей.
Пример 2
Использование POST для создания нового ресурса. Например, запрос POST /api/users с телом { 'name': 'John', 'age': 30 } создаст нового пользователя.Пример 3
Использование PUT для обновления ресурса. Например, запрос PUT /api/users/1 с телом { 'name': 'John', 'age': 31 } полностью обновит данные пользователя с id=1.Пример 4
Использование HEAD для проверки доступности ресурса. Например, запрос HEAD /api/users/1 вернет заголовки, но не тело ответа, что полезно для проверки существования ресурса.
Частые ошибки
- Ошибка #1: Путаница между PUT и PATCH. PUT полностью заменяет ресурс, а PATCH обновляет только указанные поля.
- Ошибка #2: Использование GET для передачи чувствительных данных. GET не должен использоваться для передачи паролей или другой конфиденциальной информации, так как данные передаются в URL.
- Ошибка #3: Непонимание идемпотентности. Некоторые кандидаты не понимают, что многократное выполнение PUT или DELETE не изменит результат.
Связанные темы
- RESTful API — концепция построения веб-сервисов, основанная на использовании HTTP-методов.
- CORS (Cross-Origin Resource Sharing) — механизм, который использует метод OPTIONS для проверки разрешений на запросы между разными доменами.
- Идемпотентность — свойство операции, при котором многократное выполнение не изменяет результат.
Follow-up вопросы
Чем отличается PUT от PATCH?
Уровень: intermediate
PUT полностью заменяет ресурс на новые данные, а PATCH обновляет только указанные поля ресурса. PUT идемпотентен, PATCH — нет.
Почему GET считается безопасным и идемпотентным?
Уровень: basic
GET безопасен, потому что не изменяет состояние сервера. Он идемпотентен, так как многократные запросы возвращают одинаковый результат.
Какие статус-коды могут возвращаться при успешном выполнении POST?
Уровень: intermediate
201 Created — ресурс успешно создан. 200 OK — запрос обработан успешно, но ресурс не создан. 204 No Content — запрос обработан, но тело ответа отсутствует.
Как используется метод OPTIONS в контексте CORS?
Уровень: advanced
OPTIONS используется для предварительного запроса (preflight) в CORS, чтобы проверить, поддерживает ли сервер запрашиваемый метод и заголовки.
Когда может быть полезен метод HEAD?
Уровень: basic
HEAD полезен для проверки существования ресурса или получения метаданных (заголовков) без загрузки тела ответа, что экономит трафик.
В чем разница между PUT и PATCH
Разбор вопроса «В чем разница между PUT и PATCH» для Frontend Developer: что проверяет интервьюер, ключевые тезисы, практические примеры и частые ошибки.
Что такое SOAP
Разбор вопроса «Что такое SOAP» для Frontend Developer: что проверяет интервьюер, ключевые тезисы, практические примеры и частые ошибки.