Как URL могут иметь точку. в конце, например, www.bla.de.?

58

Я никогда не верил, что URL-адреса могут иметь точку в конце, как в www.google.de.(что очевидно не работает).

Однако www.youtu.be.работает на отлично. Как им это удалось?

Майкл
источник
10
Трейлинг [точка] на самом деле верна, но системы обычно делают для вас предположение на уровне DNS. Таким образом, любой сайт .com будет на самом деле google.com. и это в теории должно работать, однако, может случиться так, что браузер не будет ожидать этого и не сможет правильно упаковать запрос, или, если они это сделают, DNS, который вы используете, не поймет его правильно. Это необычно, что пользователь на самом деле использует точку, и по умолчанию она не требуется для пользователя.
closetnoc
1
www.google.de.у меня отлично работает
Стивен Остермиллер
6
Это магия DNS. .это TLD-повелитель, тогда у вас есть gTLD :)
CodeAngry
2
Технически, это не URL, а имя хоста. Дополнительная точка в конце URL ( http://example.com/path/file.против http://example.com/path/file) может иметь значение. Например, если путь переводится в файл, а базовая ОС и файловая система отличаются file.от file. Я думаю, мне не нужно упоминать об этом, http://example.com/path/file?foo=bar.и http://example.com/path/file?foo=barони тоже очень разные. URL-адреса
Хаген фон Айцен
Также возможно, что веб-сервер не настроен на прием соединений, предназначенных для этого имени хоста. Когда веб-серверы, использующие виртуальный хостинг на основе имен, обрабатывают Hostзаголовок входящего запроса, нет гарантии, что он будет обрабатывать его так, как если бы .его не было. Я только что проверил, что на сайте я работаю на Amazon S3.
Брэндон

Ответы:

66

От сюда

Это малоизвестный факт, но полностью определенные (однозначные) доменные имена DNS имеют точку в конце. Люди, работающие с DNS-серверами, обычно знают это (если вы пропустите завершающие точки, ваша конфигурация DNS вряд ли будет работать), но широкая публика обычно этого не делает. Доменное имя, которое не имеет точки в конце, не полностью определено и потенциально неоднозначно. Это было задокументировано в спецификации DNS, RFC 1034, еще в 1987 году:

Поскольку полное доменное имя заканчивается корневой меткой, это приводит к печатной форме, которая заканчивается точкой. Мы используем это свойство, чтобы различать:

  • символьная строка, которая представляет полное доменное имя (часто называемое «абсолютным»). Например, «Понерия.ISI.EDU.»

  • символьная строка, представляющая начальные метки доменного имени, которое является неполным и должно быть заполнено локальным программным обеспечением с использованием знаний о локальном домене (часто называемом «относительным»). Например, «Понерия» используется в домене ISI.EDU.

Источник этого контента продолжает объяснять это более подробно.

Джон Конде
источник
7
Мало того, что широкая публика не знает этого, но я обычно вижу валидаторы электронной почты, которые явно запрещают конечную точку.
Кевин
3
@Kevin, они должны, и RFC2822, и RFC5322 запрещают конечный период. Они определяют доменную часть как точечный атом, который представляет собой еще один атом (атом представляет собой один или несколько символов из алфавита, указанного в RFC), разделенных точками. См. RFC5322 §3.4.1 и §3.2.3
derobert
50

Имена хостов без конечной точки потенциально неоднозначны. Точка в конце означает, что имя хоста полностью определено и может не относиться к локальному поисковому домену.

Представьте, что вы студент (вымышленного) университета примеров, у которого есть домен второго уровня example.edu. В сети университетского городка вы можете опустить .example.eduсуффикс для простоты и лени. Поэтому, если вы хотите заниматься серфингом www.example.eduи находиться в кампусе, вам просто нужно заняться серфингом, wwwи это работает.

А теперь представьте, что в университете есть институт искусственного интеллекта («ИИ»), и размещается их веб-сайт www.ai.example.edu. Если вы находитесь в кампусе, достаточно серфинга www.ai, так как вы можете опустить .example.eduсуффикс.

Все идет нормально. Но теперь вы хотите подключиться к компании «Offshore Information Services», которая управляет доменом верхнего уровня Ангильи .ai. Их веб-сайт находится по адресу http://www.ai/, но если вы введете этот URL-адрес в веб-браузер, находясь в кампусе, вместо этого вы попадете на веб-сайт института искусственного интеллекта.

Таким образом, вам нужно сообщить веб-браузеру, что вы действительно хотите перейти на веб-сайт с доменом верхнего уровня, .aiа не с доменом вашего университета .ai.example.edu. Вот где важна точка, потому что http://www.ai./ всегда будет работать независимо от локального домена поиска DNS.

Аналогично точкам между различными уровнями домена, последняя точка представляет корень DNS, то есть указывает, что слово перед этой точкой является доменом верхнего уровня и не имеет домена относительно домена поиска.

Аксель Бекерт
источник
7
Это не браузер, это DNS решатель. DNS-распознаватель на моем компьютере настроен на использование доменного имени в качестве «поискового домена», что вызывает такое поведение. Это настройка операционной системы, а не настройки браузера.
Стивен Остермиллер
3
К сожалению, для студентов Пример университета, добавив трейлинг. часто путает различные конфигурации хостинга, и он перестает работать для любых абсолютных ссылок (которые также используют многие сайты).
пушистый
1
@fluffy: Да, конечно, если веб-сервер использует конфигурации виртуальных хостов, эти сокращенные имена хостов также должны быть указаны в конфигурации vhost.
Аксель Бекерт
1
@kinokijuf: я бы посчитал такое поведение ошибкой. Браузер не должен решить, хочу ли я использовать функцию searchdomain моего распознавателя DNS или нет.
Аксель Беккерт
1
@XTaran Да, но независимо от того, правильно ли сконфигурированы vhosts на сайте www.ai.example.edu, разрешение DNS все равно будет испорчено, если на www.aiнего есть абсолютная ссылка http://www.ai/something, и если www.aihttpd сервера не понимается www.ai.как сконфигурированный хост по какой-то причине вы все еще не можете просмотреть его как http://www.ai./либо.
пушистый
-5

Я думаю, что ответ заключается в том, что большинство интернет-инструментов просто отбрасывают .или воспринимают это как дополнительную информацию о пути .

Обратите внимание, что это очень сложная иллюзия. youtu.beне youtube.be. Не уверен, но это может быть злоупотреблением.

CareyB
источник
3
youtu.beэто домен на YouTube. Он используется для более коротких ссылок, например, при обмене или встраивании видео.
kapex
примечание к @CareyB: это, вероятно, хорошо, так как youtu.be - это недавно появившееся на YouTube сокращение для видео YouTube; просто нажмите на идентификатор видео (например, для видео [хмм, кем-то, кто, очевидно, НЕ понимает CC-BY-SA) о присвоении имен FQDN, упомянув, что корневой домен является пустой строкой и, таким образом, оставляет точку в конце , расположенный на youtube.com/watch?v=qHAb3Foa1Nw, вы можете использовать youtu.be/qHAb3Foa1Nw
shelleybutterfly
12
-1; неверно, и различие youtu.be/youtube.be не имеет никакого отношения к этой проблеме вообще.
пушистый