Вопрос на собеседовании · Frontend-разработчик
Что такое CORS и почему запрос блокируется?
Короткий ответ, ключевые тезисы и ошибки, которых стоит избежать на интервью.
CORS — это механизм, с помощью которого сервер сообщает браузеру, каким внешним источникам разрешено читать его ответы. Ограничение применяет браузер в рамках same-origin policy; сам HTTP-запрос в некоторых случаях успевает дойти до сервера.
Для непростого запроса браузер сначала отправляет preflight-запрос OPTIONS. Сервер должен разрешить origin, метод и заголовки. Настройка fetch на клиенте не может самостоятельно выдать такое разрешение — корректные CORS-заголовки должен вернуть сервер.
01 · Структура ответа
Что важно сказать интервьюеру
Раскройте тезисы, которые относятся именно к этому вопросу, и поясните их на собственном примере:
02 · Пример
Как объяснить на практике
Приложение с https://app.example запрашивает https://api.example. Если API не вернул подходящий Access-Control-Allow-Origin, браузер не отдаст ответ JavaScript-коду, хотя сервер мог обработать запрос.
Не заучивайте формулировку дословно. Свяжите принцип с задачей из собственного проекта — интервьюер почти наверняка попросит уточнить детали реализации и компромиссы.
03 · Ошибки
Чего избегать в ответе
04 · Углубление
Что могут спросить следом
- Какие запросы считаются простыми?
- Зачем нужен preflight?
- Как CORS работает с cookies?
05 · Проверка фактов
Первоисточники по теме
Ссылки ниже помогают проверить понятия, методы и ограничения по теме. Они не являются доказательством того, что этот вопрос задают на каждом собеседовании.
- MDN: Cross-Origin Resource Sharing — Preflight, заголовки сервера и ограничения браузера.
Практика ответа
Ответьте вслух, а не про себя
Откроем тренировку сразу на этом вопросе. Выберите грейд, сформулируйте ответ и сравните его с подсказкой.
Mira