Як 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-overlord, значить, у вас є 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вони теж дуже різні. urls
Хаген фон Ейтцен

Можливо також, що веб-сервер не налаштований приймати з'єднання, призначені для цього імені хоста. Коли веб-сервери, що використовують віртуальний хостинг на основі імен, обробляють Hostзаголовок від вхідного запиту, немає гарантії, що він буде трактувати його так, як ніби .його не було. Я щойно перевірив, що з сайтом я працюю на Amazon S3.
Брендон

Відповіді:


66

від сюди

Це маловідомий факт, але повністю кваліфіковані (недвозначні) доменні імена DNS мають крапку в кінці. Люди, що працюють на серверах DNS, зазвичай знають це (якщо ви пропустите кінцеві крапки, ваша конфігурація DNS навряд чи спрацює), але загальна публіка зазвичай цього не робить. Ім’я домену, яке не має крапки в кінці, не є повністю кваліфікованим і потенційно неоднозначне. Це було зафіксовано в специфікації DNS, RFC 1034, ще в 1987 році:

Оскільки повне доменне ім’я закінчується кореневою міткою, це призводить до надрукованої форми, яка закінчується крапкою. Ми використовуємо цю властивість для розрізнення:

  • символьний рядок, який представляє повне доменне ім'я (часто його називають "абсолютним"). Наприклад, "poneria.ISI.EDU."

  • символьний рядок, який представляє неповні початкові мітки доменного імені, і повинен завершуватися місцевим програмним забезпеченням, використовуючи знання про локальний домен (часто його називають "відносним"). Наприклад, "poneria", що використовується в домені ISI.EDU.

Джерело цього вмісту продовжує пояснювати це детальніше.


7
Це не тільки широка громадськість не знає цього, але я зазвичай бачу валідатори електронної пошти, які явно забороняють крапку.
Кевін

3
@Kevin також вони повинні, і RFC2822, і RFC5322 забороняють затягувати період. Вони визначають доменну частину як крапковий атом, який є ще одним атомом (атом є одним або декількома символами з алфавіту, заданого в RFC), розділених періодами. Див. RFC5322 §3.4.1 та § 3.2.2
дероберт

50

Імена хостів, які не мають крапки, потенційно неоднозначні. Кінцева точка означає, що ім'я хоста є повністю кваліфікованим і може не стосуватися локального домену пошуку.

Уявіть, що ви студент (вигаданого) прикладу університету, який має домен другого рівня example.edu. Всередині університетської мережі університету ви можете опустити .example.eduсуфікс для легкості та лінивості. Отже, якщо ви хочете займатися серфінгом www.example.eduі перебуваєте на кампусі, вам просто доведеться займатися серфінгом, wwwі це працює.

А тепер уявіть, що в університеті є інститут штучного інтелекту ("AI") і розміщено їх веб-сайт www.ai.example.edu. Якщо ви на кампусі, серфінгу www.aiвистачить, оскільки ви можете опустити .example.eduсуфікс.

Все йде нормально. Але тепер ви хочете перейти до компанії «Офшорні інформаційні послуги», яка керує доменом верхнього рівня Ангільї .ai. Їх веб-сайт знаходиться за адресою http://www.ai/ - але якщо ви введете цю URL-адресу у свій веб-браузер, перебуваючи в кампусі, ви замість цього приземлитесь на веб-сайті інституту штучного інтелекту.

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

Аналогічно точкам між різними рівнями домену, остання крапка являє собою корінь DNS, тобто в ній зазначено, що слово перед цією крапкою є доменом верхнього рівня і не має домену відносно пошукового домену.


7
Це не браузер, який це робить, це DNS-рішення. Розв’яжувач DNS на моєму комп'ютері налаштований на використання доменного імені як "пошукового домену", що викликає таку поведінку. Це налаштування операційної системи, а не налаштування браузера.
Стівен Остерміллер

3
На жаль для студентів Приклад Університету, додавши останній. часто плутає різні конфігурації vhosting, і він перестане працювати на будь-які абсолютні посилання (які також використовує багато сайтів).
пухнастий

1
@fluffy: Так, звичайно, якщо веб-сервер використовує віртуальну конфігурацію хоста, ці скорочені імена хостів також повинні бути вказані в конфігурації vhost.
Аксель Беккерт

1
@kinokijuf: Я вважаю таку поведінку помилкою. Браузер не вирішив, чи хочу я використовувати функцію searchdomain мого DNS-рішення або ні.
Аксель Беккерт

1
@XTaran Так, але незалежно від того, чи веб-сайт www.ai.example.edu налаштовує свої vhosts правильно чи ні, роздільна здатність DNS все одно вимкнеться, якщо він www.aiмає абсолютне посилання на те http://www.ai/something, і якщо www.aihttpd сервера не розуміє www.ai.як налаштований хост чомусь ви все одно не можете переглядати його як http://www.ai./обидва.
пухнастий

-5

Я думаю, що відповідь полягає в тому, що більшість інструментів Інтернету просто скидають .або трактують це як додаткову інформацію про шлях .

Зауважте, що це дуже хитра ілюзія. youtu.beне є youtube.be. Не впевнений, але це може бути зловживання.


3
youtu.be- домен ютубу. Він використовується для коротших посилань, наприклад, при обміні або вбудовуванні відео.
kapex

зауважте до @CareyB: це, мабуть, нормально, оскільки "youtu.be" - це вже не ютуб, який нещодавно ввів скорочувач URL-адрес для відео YouTube; просто перейдіть на ідентифікатор відео (наприклад, для відео [гм, хтось, хто, очевидно, НЕ розуміє CC-BY-SA] про FQDN іменування, згадуючи, що кореневий домен - це порожня рядок, і таким чином залишає крапку в кінці , розташований на youtube.com/watch?v=qHAb3Foa1Nw, ви можете використовувати youtu.be/qHAb3Foa1Nw
shelleybutterfly

12
-1; неправильно, і відмінність youtu.be/youtube.be взагалі не має нічого спільного з цим питанням.
пухнастий
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.