网络之旅的第一章,我们从在浏览器中输入url开始。本章主要介绍三部分内容。首先是在Web浏览器中输入URL后,浏览器是如何解析URL并生成HTTP请求消息的。生成请求消息后,浏览器需要将请求发送给Web服务器,需要知道Web服务器的IP地址。这里讲解DNS服务器的工作原理,如何通过域名查询到IP地址。最后是委托协议栈发送请求消息,本章先讲解协议栈发送消息的基本过程,而详细内容会在第二章继续展开。
1. HTTP请求消息
1.1 URL解析
访问网络,从我们在浏览器中输入网址开始。网址是什么呢?准确来说,叫做URL(Uniform Resource Locator,同一资源定位符)。比如如下所示的URL:
http://user:password@www.glasscom.com:80/dir/file1.html
在浏览器中输入URL之后,浏览器首先会对URL进行解析。以上的URL中,user:password为用户名和密码,可以省略;www.glasscom.com表示Web服务器的域名;后面的80为端口号,端口号后的/dir/file1.htm则为需要访问的文件路径。而开头的http,表示的是浏览器使用的访问方法,访问Web服务器时需要使用HTTP协议。此外,还有ftp,mailto等不同的协议。
通过URL,浏览器就可以了解到,需要访问www.glass.com的Web服务器上路径为/dir/file1.html的文件。看起来很简单。
但很多时候,我们输入的URL后面可能是一个目录,比如
http://user:password@www.glasscom.com/dir/
更有的时候,干脆连目录都省了:
http://user:password@www.glasscom.com
这时候浏览器要如何处理呢?这种情况下,会访问根目录"/"下的默认文件。
1.2 生成HTTP请求消息
解析了URL,浏览器现在知道去哪里获取需要的资源了。接下来就会生成HTTP请求消息。
HTTP协议定义了客