Я читал вокруг, и, кажется, нет очень хорошо понятной и полностью принятой терминологии для частей URL.Это правда?Я хотел бы знать, какие стандарты существуют для терминологии частей URL.Что является наиболее распространенным?Есть ли какой-либо хорошо установленный стандарт?
Я нашел следующее:
foo://example.com:8042/over/there?name=ferret#nose
\_/ \______________/\_________/ \_________/ \__/
| | | | |
scheme authority path query fragment
| _____________________|__
/ \ / \
urn:example:animal:ferret:nose
protocol://username:password@hostname:port/pathname?search#hash
-----------------------------href------------------------------
-----host----
----------- origin -------------
protocol
- схема протокола URL, включая окончательный ':' hostname
- доменное имя port
- номер порта pathname
- / pathname search
-? параметры hash
- #фрагмент_идентификатора username
- имя пользователя, указанное перед именем домена password
- пароль, указанный перед именем домена href
- весь URL origin
- протокол: // имя хоста: порт host
- имя хоста: порт
3.NodeJS, модуль url
Над строкой с URL-адресом вы видите старый интерфейс API url
модуля, а под строкой вы видите новый API.Кажется, что узел перешел от стандартной терминологии RFC к более удобной для браузера стандартной терминологии, то есть аналогично браузеру windows.location
.
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ href │
├──────────┬──┬─────────────────────┬────────────────────────┬───────────────────────────┬───────┤
│ protocol │ │ auth │ host │ path │ hash │
│ │ │ ├─────────────────┬──────┼──────────┬────────────────┤ │
│ │ │ │ hostname │ port │ pathname │ search │ │
│ │ │ │ │ │ ├─┬──────────────┤ │
│ │ │ │ │ │ │ │ query │ │
" https: // user : pass @ sub.example.com : 8080 /p/a/t/h ? query=string #hash "
│ │ │ │ │ hostname │ port │ │ │ │
│ │ │ │ ├─────────────────┴──────┤ │ │ │
│ protocol │ │ username │ password │ host │ │ │ │
├──────────┴──┼──────────┴──────────┼────────────────────────┤ │ │ │
│ origin │ │ origin │ pathname │ search │ hash │
├─────────────┴─────────────────────┴────────────────────────┴──────────┴────────────────┴───────┤
│ href │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
4.Высший рейтинг статья от Мэтта Каттса
URL: http://video.google.co.uk:80/videoplay?docid=-7246927612831078230&hl=en#00h02m30s
- Протокол http.Другие протоколы включают https, ftp и т. Д.
- Хост или имя хоста - video.google.co.uk.
- Субдомен - video.
- Доменное имя google.co.uk.
- Домен верхнего уровня или домен верхнего уровня - это Великобритания.Домен uk также называется доменом верхнего уровня с кодом страны или ccTLD.Для google.com TLD будет com.
- Домен второго уровня (SLD) - co.uk.
- Порт 80, который является портом по умолчанию для веб-серверов.Возможны другие порты;веб-сервер может прослушивать порт 8000, например.Когда порт равен 80, большинство людей пропускают порт.
- Путь - / videoplay.Путь обычно относится к файлу или расположению на веб-сервере, например /directory/file.html
- Этот URL имеет параметры.Имя одного параметра - docid, а значение этого параметра - 7246927612831078230. URL-адреса могут иметь множество параметров.Параметры начинаются со знака вопроса (?) И разделяются амперсандом (&).
Некоторые из моих проблем:
Является ли window.location
стандартом или основано на стандарте?
Должен ли я назвать http://
protocol
или scheme
?
Должен ли я сказать host
или authority
?
Почему ни window.location
, ни узел не имеют свойств для TLD или других частей домена, если они доступны?
Терминологическая разница между hostname
(example.com) и host
(example.com:8080) хорошо известна?
для узла origin
не включает username:password@
, в то время как для windows.location
это
Я хотел бы следовать в своем коде хорошо установленному стандарту или передовым методам.