Как называется протокол и хост?
По спецификации и семантике протокол и хост объединены: https://example.com
все еще называется хостом, или это называется URL, URI или что-то еще?
Кроме того, (https) называется протоколом или схемой? NGINX использует схему, но я не вижу никакой ссылки на это происхождение.
5 ответов
На самом деле это все в вики... https://en.wikipedia.org/wiki/Uniform_Resource_Identifier
Имя, которое вы ищете, это URL. URI - это глобальное имя для идентификаторов ресурсов, а URL - это определенный тип URI, используемый в сети. И, согласно документам, вы должны использовать схему, а не хост: https://www.w3.org/TR/uri-clarification/
Я думаю, что термин, который вы действительно ищете, - это происхождение, как в RFC 6454.
Источник - это не просто схема + хост, а схема + хост + порт. И, например, https://example.com
это выглядит просто как схема + хост, не только это, потому что он также выражает порт (по умолчанию) - порт 443, порт TLS по умолчанию - так же, как в http://example.com
есть встроенное выражение, что порт 80.
Я не уверен, каков был контекст для исходного вопроса, но я знаю общий случай, который обычно побуждает кого-то хотеть узнать, как называется комбинация схема + хост, - это случай, когда вы хотите сравнить два URL, которые либо один и тот же хост, но разные схемы, например https://example.com
а также http://example.com
или которые имеют ту же схему и хост, но разные порты, как http://example.com
а также http://example.com:8888
, И если рассматривать сравнение URL-адресов таким образом, то в конечном итоге вы будете думать о них с точки зрения политики "того же источника", на которой основана вся модель веб-безопасности.
IMHO, происхождение - неправильный термин, так как происхождение относится к "откуда приходит сообщение". Но это также может быть пункт назначения. Поэтому я думаю, что базовый URL-адрес - это наиболее подходящий термин для протокола + хост + порт. См., Например, https://www.techopedia.com/definition/4858/base-url.
(Следующее соответствует стандарту URI STD 66, который в настоящее время соответствует RFC 3986.)
Абсолютный URI с полномочиями (например, доменное имя или IP-адрес) должен состоять из (в этом порядке)
Итак, согласно этим правилам, https://example.com
является
- либо действительный URI (с пустым путем),
- или еще не действительный URI (потому что он пропускает путь, который может быть пустым или начинаться с
/
).
(Но если вы не найдете этот URI в определенном контексте, можно, конечно, предположить, что это URI с пустым путем.)
Однако спецификация HTTP RFC 2616 определяет правила для схемы для URI HTTP: если URI используется как Request-URI ( см. Определение), и URI abs_path
пусто, оно должно быть задано как /
(То есть, https://example.com/
).
Ни стандарт URI, ни стандарт HTTP не определяют термин, который будет описывать только комбинацию scheme
и authority
компоненты.
Если вы согласны с включением части порта в терминологию, javascript анализирует эту часть URL-адреса и помещает ее вorigin
свойство.