完整可能的URL语法和语法

时间:2012-11-14 19:49:31

标签: url

我正在查看有关网址组件的一些信息,但无法找到可能的全长网址以及每个组件可能是什么的合理解释。我想知道完整的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

我还忘记了什么,或者我忽略了一个解释它们的好网站。请更正我的命名,因为它们可能不正确,因为我试图了解它们的名称。

1 个答案:

答案 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。