Как называется протокол и хост?

По спецификации и семантике протокол и хост объединены: 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-адрес) должен состоять из (в этом порядке)

  1. scheme компонент,
  2. :,
  3. //,
  4. authority компонент и
  5. path компонент (→ path-abempty).

Итак, согласно этим правилам, 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свойство.

Другие вопросы по тегам