我正在查看有关网址组件的一些信息,但无法找到可能的全长网址以及每个组件可能是什么的合理解释。我想知道完整的URL是什么样的,利用所有的复杂性。我也希望在我更好地理解它们之后构建一个小GUI来帮助解释它们,但在那之前我会尝试使用我所知道的组件:
[ ]
括号包含完整组件
|
管道显示组件的可能子组件
( )
括号包含有关子/组件的注释,想法和假设
我完全理解:
[type][://][subdomain][domain][port][path][file][query][hash]
以下是每个组件的说明:如果它有*
,则为可选
[type]
* = [(type {http | https | ftp | file | etc ...})]
(虽然这是可选的,我相信它也是必需的,这意味着现代浏览器会插入类型以向服务器请求它,并且服务器也可以返回不同的类型)
[://]
=(不知道这叫什么)
[subdomain]
* = [[subdomain] | [subdomain] subdomain]
[domain]
= [姓名。 (输入{com | org | etc ..})]
[port]
* = [(空白,默认端口:80)|港口:**]
[path]
* = [(空白)| [路径] | [路径]路径]
[file]
= [姓名。 (输入{html | php | php |(etc ...)})]
[query]
* = [?[空白(即无查询)|参数=值| paramater = value& paramater = value(etc ...)]]
[hash]
* = [#[空白(即无哈希)| anyStringToBeParsedClientSide(通常用于持久性)]
(刚刚学会了哈希也被称为fragment identifier)
我还忘记了什么,或者我忽略了一个解释它们的好网站。请更正我的命名,因为它们可能不正确,因为我试图了解它们的名称。
答案 0 :(得分:6)
如果你真的想要所有的复杂性,标准文件是唯一的方法,学习找到和阅读它们肯定是值得的。而RFC通常不是很难阅读。
在这种情况下,RFC 1738 (Uniform Resource Locators)是您想要的资源。它不再是你迄今为止所提出的“过于技术性”;实际上,第5节的正式BNF语法与你所写的类似。
您可能也对描述URI格式的RFC 3986 (Uniform Resource Identifiers)感兴趣,这种格式比仅仅网址更为通用。
您提及的一些内容特定于HTTP,在RFC 2616 (Hypertext Transfer Protocol 1.1)中有所描述。 Section 3.2简要介绍了URI。