В чем разница между Origin и Host

«В чем разница между Origin и Host» — вопрос из категории Безопасность, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Origin и Host — это HTTP-заголовки, но они служат разным целям:

  • Host указывает домен и порт сервера, к которому обращается клиент. Обязателен для всех HTTP/1.1 запросов.
    Пример: Host: example.com:8080

  • Origin указывает схему (протокол), домен и порт источника запроса. Используется в CORS для проверки безопасности. Отсутствует в same-origin запросах.
    Пример: Origin: https://example.com

Ключевые отличия:

  1. Host есть всегда, Origin — только в cross-origin запросах (например, при fetch или XMLHttpRequest).
  2. Origin не включает путь, только схему+домен+порт.
  3. Сервер использует Host для маршрутизации, а Origin — для проверки CORS.