В чем разница между Origin и Host?
Продвинутые темы
Origin и Host — разные части идентификации ресурса: Host — это домен (и порт), а Origin — это протокол + домен + порт вместе.
Host
Заголовок/понятие, содержащее домен и порт (без протокола):
Host: example.com:8080Или просто example.com. Определяет, к какому серверу/домену идёт запрос.
Origin
Протокол + домен + порт — полный источник:
Origin: https://example.com:8080Origin включает схему (https), которой нет в Host.
Главное различие
URL: https://example.com:8080/path
Host: example.com:8080 (домен + порт)
Origin: https://example.com:8080 (протокол + домен + порт)Origin = схема + Host.
Где применяются
Host
- Заголовок
Host— виртуальный хостинг (один IP, много доменов). - Маршрутизация запроса на сервере.
Origin
- Заголовок
Origin— в CORS: браузер сообщает источник запроса. - Определение «same-origin» (важны все три части: протокол, домен, порт).
https://a.com и http://a.com — разный ORIGIN (разный протокол), но один HOSTКоротко для собеседования
Host — домен и порт (без протокола, example.com:8080). Origin — протокол + домен + порт (https://example.com:8080). Origin включает схему, Host — нет. Host используют для маршрутизации/виртуального хостинга, Origin — в CORS и определении same-origin (различие протокола даёт разный origin, но тот же host).