HTTP协议之URL语法
URL提供了一种对任意的一种互联网资源定位的手段。但是这些资源是可以通过不同的方案来(比如,HTTP,FTP,SMTP)进行访问的,因此URL的语法会随着方案的不同而不同。
实际上,大部分的URL都遵循通用的URL,而且不少的URL方案的风格和语法都有不少的重叠。
大部分的URL方案的URL语法都建立在这个由9个部分构成的通用格式上:
1 | <scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag> |
URL最主要的三个部分是方案(scheme)、主机(host)和路径(path)。
组件 | 描述 | 默认值 |
---|---|---|
方案 | 访问服务器以获取资源时要使用哪种协议 | 无 |
用户 | 某些方案访问资源时需要用户名 | 匿名 |
密码 | 用户名后面可能要包含的密码,中间由冒号(:)分割 | <E-mail地址> |
主机 | 资源宿主服务器的主机名或点分IP地址 | 无 |
端口 | 资源宿主服务器正在监听的端口号。很多方案都有默认端口号(HTTP默认端口号为80) | 每个方案特有 |
路径 | 服务器资源的本地名,由一个斜杠(/)将其与前面的URL组件分隔开来,路径组件的语法是与服务器和方案有关的 | 无 |
参数 | 某些方案会有这个组件来指定输入参数。参数名为名/值对。URL中可以包含多个参数字段,它们相互之间以及与路径的其余部分之间用分号(;)分隔 | 无 |
查询 | 某些方案会用这个组件传递参数以激活应用程序(比如数据库、公告板、搜索引擎以及互联网网关)。查询组件的内容没有通用格式。用字符“?”将其与URL的其余部分分割开来。 | 无 |
片段 | 一小片或一部分资源的名称。引用对象时,不会讲frag字段传入服务器hegel字段是在客户端内部使用的。通过字符“#”来将其与URL的其余部分分割开来。 | 无 |