URL解析
URL(Uniform Resource Locators)是什么?
是我们在浏览器中输入的一串Web地址,正式名称是统一资源定位符。
URL有什么用?
URL是一个互联网中的一个全局地址,用来定位互联网中的任意资源,除了用来定位我们熟悉的HTML页面,也能定位音频、视频等其他形式的web内容。
“用来定位”是什么意思?定位的意思是输入这一串URL后,服务器能帮我们找到我们指定的那个网页。
URL剖析
以谷歌浏览器的URL为例:
http://www.google.com/index.html
现在我们来拆解这个URL,URL由三部分组成:
- 获取资源的协议: http
- 网站名:www.google.com
- 绝对路径:index.html 这三个部分分别是什么意思?下文细讲。
1. HTTP
什么是HTTP?
HTTP(HyperText Transfer Protocol)是超文本传输协议。
超文本传输协议是什么意思?首先是超文本文档,超文本有两个含义,一是超链接的文本,二是超出文本的形式,如图片、视频。其次是传输数据。
HTTP是如何工作的?
超文本传输协议(HTTP)是一个简单的请求与响应协议。
浏览器向服务器发送一个HTTP请求:“我能得到文件xxx.html吗?”。服务器收到请求后,就会开始寻找所请求的页面。服务器响应浏览器的情况有两种:
- 找到了,传送给浏览器所请求的页面;
- 没找到,传送给浏览器404错误。
2. 网站名 www.google.com
这里要讲一下网站名和域名的区别。
网站名是www.google.com
域名是google.com, 拥有一个域名就像拥有一块土地,可以在这片土地的领域上建很多网站,比如home.google.com、www.google.com...
www.google.com 只是google.com这个域上的一个网站。
那么www是什么意思? 回答:World Wide Web的简写,也就是我们熟悉的万维网。
绝对路径
绝对路径告诉服务器通过哪条路线能找到某个特定的文件或页面。这里有一个很重要的一点是绝对路径永远是从根目录开始往下找的,这是与相对路径的本质区别。
我们都知道“/”用来表示根目录,可以看到 www.google.com/index.html 的域名后面和index.html之间有一个“/”,这里的“/”就是表示根目录的意思。
如果浏览器向服务器请求的不是一个页面或文件,而是一个目录怎么办?
比如我们输入 www.google.com/ 或 www.google.com/images/ 时,服务器会怎么处理这个请求呢?
当服务器收到请求目录的这样一个请求时,它会去寻找这个目录下的一个默认文件,通常命名为“index.html”或“default.html”。所以如果要从根目录(或其他目录)默认地返回一个文件,只需要把文件命名为“index.html”或“default.html”。
讲到这里有一个很有趣的点是,我们平时要想进入谷歌的主页的话,并不会输入www.google.com/ 而是输入 http://www/google.com ,为什么这样服务器也能返回给我们默认页面呢?
这是因为当服务器收到一个末尾没有“/”的请求时,如果这个目录确实存在,那么服务器就会帮你加上这个斜线“/”。
比如你输入:www.google.com
服务器会把这个地址改为:www.google.com/
最后再返回给浏览器这个目录下的默认页面。
结束语
至此,我们的URL解析就结束了。这是我学到这个知识点后重新组织语言确认自己真的理解了这个知识点以后写的博文,个人认为服务器接收到目录请求这一部分的知识很有意思,是很基础但很少看到有人解释过的知识,于是做一个存档和分享。