Я попытался найти в Интернете определение FQDN. Википедия говорит, что полное доменное имя
указывает его точное местоположение в древовидной иерархии системы доменных имен (DNS), я бы интерпретировал это как однозначно разрешимое (в DNS).
Пример в WP (жестко, я не хочу использовать это как ссылку) заявляет об использовании hostname.example.com.
Найденные мной RFC (RFC 1035 был единственным, не зависящим от протокола, который я обнаружил), не были информативны относительно того, что соответствует требованиям FQDN.
Я думал, что только такой идентификатор, как hostname.example.com, является допустимым полным доменным именем (включая все имя хоста, домен и TLD отдельно), но это кажется неправильным.
Нужно ли, чтобы полное доменное имя всегда включало имя хоста рядом с доменом, даже если домен состоит только из одного хоста? Или это единственное определение, что полное доменное имя должно разрешаться через DNS? Например. домен .tk однозначно разрешим, это полное доменное имя?
Я считаю, что имя полностью определено, если вам не нужно добавлять какие-либо дополнительные идентификаторы для однозначного определения хоста. Если это не так, то имя будет считаться относительным.
RFC1535 обсуждает важный момент:
Абсолютное "корневое" полное доменное имя имеет формат {имя} {.} Некорневое доменное имя имеет формат {имя}
В приведенном выше примере вы разрешите .tk
так как tk.
чтобы убедиться, что это однозначно. Интересно, что у этого действительно есть действительная запись A.
$ dig tk.
; <<>> DiG 9.8.3-P1 <<>> tk.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 812
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;tk. IN A
;; ANSWER SECTION:
tk. 20 IN A 217.119.57.22
РЕДАКТИРОВАТЬ: RFC1535 имеет еще одну интересную цитату:
Далее, в любом случае, где "." существует в указанном имени, оно должно предполагаться как полное доменное имя (FQDN) и ДОЛЖНО быть сначала опробовано как корневое имя.
В Очередь ACM, Я определил полное доменное имя следующим образом:
Пространство имен DNS имеет древовидную структуру, в которой каждый узел имеет родителя, за исключением корневого узла, который является его собственным родителем. Узлы имеют метки длиной от 1 до 63 символов, за исключением корневого узла, метка которого пуста. Домен - это узел в контексте, а полное доменное имя имеет форму представления, состоящую только из имен узлов снизу вверх, за каждым из которых следует точка (.). Например, www.google.com - это полное имя узла, имя которого - www, родительский элемент - google, прародитель - com, а прапрадедушка - корень DNS.
Каждый раз, когда вы используете такие термины, как «имя хоста», «часть хоста» или «часть домена», вы теряетесь, и вы обнаружите, что никакое определение FQDN полностью не соответствует вашей цели. Значение, а не определение FQDN можно прояснить, рассмотрев его антоним: неполное доменное имя. Чтобы быть полностью квалифицированным, вы указываете все метки домена до верхнего уровня, и в этом случае вы можете добавить последнюю точку (.), Чтобы указать, что вы это сделали. Быть неполноценным означает, что имя, на которое вы смотрите, имеет смысл только в контексте списка поиска или домена по умолчанию.
RFC 1535 был интересен тем, что многие из нас до этого использовали локальные имена с несколькими метками и все еще ожидали поведения списка поиска - а это нарушило слишком много других вещей, поэтому было объявлено вне закона. Но когда я был postmaster@dec.com в 1988-1993 годах, можно было отправлять почту с vixie@cognition.pa на matt @ decvax и расширять ее до vixie@cognition.pa.dec.com и matt@decvax.dec. .com и все заработало. Оказалось, что нам пришлось отказаться от этого. В наши дни, если в вашем имени на уровне презентации есть точка (то есть вы ввели ее или программа показала ее), все программное обеспечение в мире предполагает, что это полное доменное имя.
Мой Книга рассылки (в соавторстве с Фредом Аволио после того, как мы оба покинули DEC.COM) также есть глава по этой теме, которую интересно читать, поскольку она была написана одновременно с RFC 1535.
Мои 2 цента:
В самом строгом смысле полное доменное имя - это то, что вы написали в своем примере.
то есть hostname.example.com.
включая точка в конце.
Я не думаю, что это должно быть разрешено через DNS, это просто синтаксическое определение.