Полный возможный синтаксис URL и грамматики

я просматривал некоторую информацию о компонентах URL, но не могу найти разумного объяснения возможного url-адреса полной длины и того, каким может быть каждый компонент. Я хочу знать, как может выглядеть полный URL, используя все сложности. я также надеюсь построить небольшой GUI, помогающий объяснить их, как только я их лучше пойму, но до тех пор я попробую с компонентами, о которых я знаю:

[ ] скобки содержат полный деталь | труба показывает возможные подкомпоненты компонента ( ) скобки содержат заметки, мысли и предположения о суб/компонентах

мое полное понимание:

[type][://][subdomain][domain][port][path][file][query][hash]

вот описания каждого компонента: если он имеет *, это не является обязательным

[type]* = [(введите {http / https | ftp | file / etc...}) ] (хотя это необязательно, я считаю, что это также необходимо, что означает, что современный браузеры вставляют тип, чтобы запросить его на сервер, и сервер также может вернуть другой тип)

[://] = (не знаю как это называется)

[subdomain]* = [ [поддомен] | [поддомен]поддомен ]

[domain] = [ имя . (введите {com | org / etc..}) ]

[port] * = [(пустой, который по умолчанию порт:80) / порт:**]

[path] * = [(пустой) | [путь] / [путь]путь ]

[file] = [ имя . (введите {html / php / php | (etc...)})]

[query]* = [ ?[ пустой(т. е. без запроса) | Параметр=Значение Параметр=Значение&параметр=значение(и т. д...) ]]

[hash] * = [ #[пустой (т. е. без хэша) / anyStringToBeParsedClientSide(обычно для сохранения) ] (только что узнал, что хэш также известен как идентификатор фрагмента )

что еще я забываю, или я просматриваю хороший сайт, который объясняет их. Пожалуйста, исправьте мое имя, так как они вероятны неверно, так как я пытаюсь также узнать, как они называются.

1 ответов


Если вы действительно хотите все тонкости, стандартные документы-единственный способ пойти, и научиться находить и читать их определенно окупается. И RFC не обычно очень трудно читать.

в этом случае RFC 1738 (единые локаторы ресурсов) - это ресурс, который вы хотите. Это не более "чрезмерно технический", чем то, что вы придумали до сих пор; на самом деле, раздел 5 имеет формальную грамматику BNF, подобную тому, что вы написали.

вы также можете быть заинтересованы в RFC 3986 (унифицированные идентификаторы ресурсов) который описывает формат URI, который является более общим, чем простые URL-адреса.

некоторые из упомянутых вами вещей специфичны для HTTP, описанных в RFC 2616 (протокол передачи гипертекста 1.1). 3.2 кратко касается URIs.