URL разделены на несколько частей. Предполагая этот синтаксис:
scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]
Кроме того, я обычно делю хост на домен и поддомен, хотя я не уверен, является ли это какой-либо официальной схемой именования.
С этим вы можете разделить ваши примеры на следующие сегменты:
http://example.com/google.com/?q=http://example.net&#id=http://example.org&
- Схема:
http
- Ведущий:
example.com.
- Домен:
example.com.
- Путь:
google.com
- Запрос:
q=http://example.net&
- Фрагмент:
id=http://example.org&
http://google.com.example.com/file.example.com#666
- Схема:
http
- Хост:
google.com.example.com.
- Домен:
example.com.
- поддомен:
google.com
- Путь:
file.example.com
- Фрагмент:
666
Для DNS используется только хост. Затем вы сообщаете свой путь и запрашиваете сервер. Ваш браузер заботится о фрагменте, прокручивая вас на нужную страницу или отображая или скрывая контент.
В приведенных выше примерах обратите внимание на точку после некоторых доменов. Это означает, что они являются концом домена или TLD (домен верхнего уровня). Поддомены не имеют этого, потому что они не являются полной ссылкой. Вы можете увидеть это и в записях DNS:
demo.example.com. 3600 IN A 12.34.56.78
localhost 3600 IN A 127.0.0.1
www 3600 IN CNAME demo.example.com.
ftp 3600 IN A 12.34.56.78
Эти записи DNS приведут к следующим хостам:
- demo.example.com, разрешение 12.34.56.78
- localhost.example.com, разрешение 127.0.0.1
- www.example.com, разрешается на demo.example.com, разрешается на 12.34.56.78
- ftp.example.com, разрешение 12.34.56.78