引言
URL,是统一资源定位符(Uniform Resource Locator)的缩写,一个URL就是一个特定资源在网络上的地址。理论上讲,一个URL指向一个唯一的资源,这个资源可以使一个HTML页面、一个CSS文件或者一张图片,等等。实际上,有一些例外,最常见的就是URL指向的资源已不存在或者被移走,不过这不在要讨论的范围。
URL语法
一个URL有不同的组件构成,有些可选有些必选。用下面的示例来学习一下:
http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument
http://是协议(方案),它告诉浏览器访问服务器资源使用哪种协议。web上通常使用的是http和https(使用了SSL:为HTTP连接提供端到端的加密机制),还有一些其他协议类型,如mailto(打开邮件客户端)、ftp(传输文件)。
www.example.com是域名,指向资源的宿主服务器,还可以使用IP地址,不过因为不便记忆,所以通常不用。
:80端口,宿主服务器正在监听的端口号,很多方案都有默认的端口号(HTTP默认80端口,HTTPS默认443端口)。
/path/to/myfile.html是资源在web服务器上的路径,早起网站上,这样的路径表示资源在web服务器上的物理位置,现在由于抽象的原因,可能服务器上就不存在该物理文件或文件夹。
?key1=value1&key2=value2是提供给web服务器额外的查询。这些参数是以键值对列表,中间用&分割,web服务器用这些参数在访问资源前做一些额外的处理。
#SomewhereInTheDocument是一个片段标识符,它不会被发送到服务器。这个标识符是用来告诉浏览器显示呈现某一段内容。
以上是常见的URL组成部分。完整的URL语法还包括用户、密码和参数。详细请查看《HTTP权威指南》这本书。