本节书摘来自华章社区《Web前端工程师修炼之道(原书第4版)》一书中的网页地址(URL),作者Jennifer Niederst Robbins,更多章节内容可以访问云栖社区“华章社区”公众号查看
网页地址(URL)
Web上的每个页面和资源都有特殊的地址,那就是URL(统一资源定位器)。在现在的公交车侧面、公司名片或者电视的商业化广播上,你每天都可能看到URL(读作“U-R-L”,而不是“erl”)。网站地址深入了我们生活的方方面面。
一些URL很简短,还有一些URL是用点和斜线隔开的混乱的字符串,虽然看起来很繁杂,但是其中每一部分都有特定的含义。我们将详细讲述。
URL的组成
完整的URL通常由三部分组成:协议、站点名字和文档或资源的绝对路径,如图2-1所示。
![ee5d9063dfef31da8484a4a3c3390f04180da6de](https://yqfile.alicdn.com/ee5d9063dfef31da8484a4a3c3390f04180da6de.png?x-oss-process=image/resize,w_1400/format,webp)
① http://
URL所做的第一件事是指定处理事务所用的协议。字母 HTTP告诉服务器使用超文本传输协议,或者进入“Web模式”。
② www.example.com
URL的第二部分用域名标识了网站。在这个例子中,域名是example.com。开头的www.是特殊的主机名字。主机“www”已经成为一个惯例,但并不是规定。事实上,有时候主机名可以省略。每个域名都可以有多个网站(也就是子域名)。例如,可能有development.example.com和clients. example.com等。
③ /2012/samples/first.html
这是在服务器上被请求的HTML文件first.html的绝对路径。用斜线分隔的单词表示目录名称,从主机的根目录开始。由于互联网最初由运行Unix操作系统的计算机组成,所以到现在依然遵循很多Unix的规则和约定,因此使用/分离目录名称。
总之,图2-1例子中的URL说明它使用的是HTTP协议来连接互联网上名叫www.example.com的Web服务器,并且请求first.html文件(这个文件在Samples文件夹中,再上一层目录是2012)。
默认文件
显然,并非每一个URL都是这么长。很多地址没有包含文件名字,只简单地指向一个目录,就像下面这样:
http://oreilly.com
http://www.jendesigh.com/resume/
当服务器收到对一个目录的请求而不是对特定文件的请求时,它就会在目录中寻找默认文件,这个文件通常称为index.html,所以当在浏览器中输入上面这些URL时,实际会看到的是:
http://oreilly.com/index.html
http://jendesign.com/resume/index.html
默认文件(一般指的是index文件)的名字可以改变,这取决于服务器是如何配置的。在这个例子中,默认文件是index.html,但还有一些服务器会使用default.htm作为默认文件。如果你的站点是使用服务端程序来生成页面的,index文件可能就会命名为index.php或者index.asp。与你的服务器管理员或技术支持部门一同检测一下,以确保默认文件的名字正确。
在第一个例子中还有一个要注意的地方,原先的URL并没有末尾的斜线,以表示这是一个目录。当省略这个斜线时,如果服务器发现存在这个名字的目录,它会自动添加一个斜线。
Index文件对安全也是有用的。如果没有找到默认文件,一些服务器(取决于它们的配置)会显示目录的内容。如图2-2所示,由于没有找到默认文件,目录housepics中的所有文件都暴露出来了。阻止人们看到你的这些文件的一个方法是,确保每个目录都有一个index文件。你的系统管理员也可能会添加一些保护措施,以免浏览器显示目录内容。