Какие знаешь HTTP-запросы
Разбор вопроса «Какие знаешь HTTP-запросы» для Frontend Developer: что проверяет интервьюер, ключевые тезисы, практические примеры и частые ошибки.
Вопрос
Какие знаешь HTTP-запросы
Профессия
Frontend Developer
Что хочет услышать интервьюер
Интервьюер хочет убедиться, что кандидат понимает основные типы HTTP-запросов и их назначение. Важно показать знание различий между методами и примеры их использования в реальных проектах.
Ключевые тезисы
- Основные HTTP-запросы: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS.
- GET используется для получения данных с сервера, например, запрос страницы или API.
- POST отправляет данные на сервер, например, при отправке формы.
- PUT и PATCH используются для обновления данных, PUT заменяет весь ресурс, а PATCH — только часть.
- DELETE удаляет данные на сервере, например, удаление записи в базе данных.
- HEAD похож на GET, но возвращает только заголовки без тела ответа.
- OPTIONS используется для получения информации о доступных методах для ресурса.
Подробный ответ
HTTP-запросы — это основа взаимодействия между клиентом (например, браузером) и сервером. Они позволяют получать, отправлять, обновлять и удалять данные. Основные методы HTTP-запросов включают GET, POST, PUT, PATCH, DELETE, HEAD и OPTIONS. GET используется для получения данных с сервера, например, при запросе страницы или данных через API. POST отправляет данные на сервер, например, при отправке формы или создании нового ресурса. PUT и PATCH используются для обновления данных: PUT заменяет весь ресурс, а PATCH обновляет только часть данных. DELETE удаляет данные на сервере, например, удаляет запись из базы данных. HEAD похож на GET, но возвращает только заголовки ответа без тела, что полезно для проверки доступности ресурса. OPTIONS используется для получения информации о доступных методах для конкретного ресурса, что часто применяется в CORS-запросах.
Практические примеры
Пример 1
Пример использования GET: fetch('https://api.example.com/users').then(response => response.json()).then(data => console.log(data)); — запрос на получение списка пользователей.Пример 2
Пример использования POST: fetch('https://api.example.com/users', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'John' }) }).then(response => response.json()).then(data => console.log(data)); — создание нового пользователя.Пример 3
Пример использования PATCH: fetch('https://api.example.com/users/1', { method: 'PATCH', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'Jane' }) }).then(response => response.json()).then(data => console.log(data)); — обновление имени пользователя с id=1.Частые ошибки
- Использование GET для отправки чувствительных данных, таких как пароли или токены, так как они будут видны в URL.
- Путаница между PUT и PATCH: PUT заменяет весь ресурс, а PATCH обновляет только указанные поля.
Связанные темы
- CORS (Cross-Origin Resource Sharing) — механизм, позволяющий браузеру запрашивать ресурсы с другого домена.
- HTTP-заголовки — важная часть HTTP-запросов и ответов, которая передает метаданные.
- REST API — архитектурный стиль, который часто использует HTTP-методы для взаимодействия с ресурсами.
Follow-up вопросы
В чем разница между PUT и PATCH?
Уровень: basic
PUT заменяет весь ресурс целиком, а PATCH обновляет только указанные поля. Например, PUT перезапишет весь профиль пользователя, а PATCH изменит только email.
Какой HTTP-метод идемпотентен, а какой нет?
Уровень: intermediate
Идемпотентные методы (GET, PUT, DELETE, HEAD, OPTIONS) при повторном выполнении дают тот же результат. POST не идемпотентен — повторный запрос может создать дубликат ресурса.
Когда использовать OPTIONS в реальных проектах?
Уровень: intermediate
OPTIONS применяют для CORS (Cross-Origin Resource Sharing). Браузер автоматически отправляет OPTIONS-запрос перед сложными запросами (например, POST с custom headers), чтобы проверить разрешенные методы.
Как безопасно передать чувствительные данные в GET-запросе?
Уровень: advanced
GET-параметры остаются в истории браузера и логах сервера. Для чувствительных данных (пароли, токены) используйте POST с HTTPS и шифрованием. В крайнем случае — кодируйте данные в заголовках.
Какие HTTP-статусы должны возвращать эти методы при успехе?
Уровень: basic
GET — 200 OK, POST — 201 Created (или 200), PUT/PATCH — 200 OK или 204 No Content, DELETE — 200 OK или 204 No Content. OPTIONS возвращает 200 с заголовком Allow.
Какие плюсы и минусы GraphQL
Разбор вопроса «Какие плюсы и минусы GraphQL» для Frontend Developer: что проверяет интервьюер, ключевые тезисы, практические примеры и частые ошибки.
Какие знаешь HTTP статус-коды
Разбор вопроса «Какие знаешь HTTP статус-коды» для Frontend Developer: что проверяет интервьюер, ключевые тезисы, практические примеры и частые ошибки.