《网络是怎么连接的》第一章笔记

一 生成HTTP请求消息
1.我们先来介绍一下网址,网址,准确来说是URL(Uniform Resource Locator)统一资源定位符。也就是以http://开头的那一串东西,实际上除了http:还有ftp:,file:,mailto:等等,这些代表不同的协议。浏览器不仅仅可以用来访问web服务器,也可以在ftp服务器上传和下载文件,也具备邮件客户端的功能。
网址会包含服务器的域名和要访问的文件名等
2浏览器做的第一步工作是对URL进行解析,从而生成发送给WEB服务器的请求消息
http://user:password@www.lab.glasscom.com:80/dir1/file1.html
其中http:代表网络协议,user:password@代表用户名和密码(可省略),www.lab.glasscom.com表示服务器的名称 80代表端口(可省略),dir1/file1.html代表文件的路径名。当没有写文件名,http://www.lab.glasscom.com/,最后的/代表根目录,结果是访问/index.html或default.html这样的文件。

3 HTTP协议定义了客户端和服务器之间交互的消息内容和步骤,首先客户端向服务器发送请求消息,请求消息中包含的内容是“对什么”和“进行怎样的操作”,其中“对什么”的部分称为URI,可以是存放网页数据的文件名或是CGI程序(对web服务器程序调用其它程序的规则所做的定义就是CGI)。“进行怎样的操作”的部分称为方法,方法表示需要让web服务器完成怎样的工作,主要有GET方法获取URI指定的消息,POST方法从客户部向服务器发送数据,PUT方法替换URI指定的服务器上的文件,DELETE方法删除URI指服务器上的文件。
收到请求消息之后,WEB服务器会对其中的内容进行解析,通过URI和方法判断“对什么”“进行怎么样的操作”,按要求完成工作,并把结果存放在响应消息中。返回响应消息后,浏览器会将数据提取出来并显示在屏幕上。
【《网络是怎么连接的》第一章笔记】二 向DNS服务器查询Web服务器的IP地址
浏览器能够解析网址并生成Http消息,但本身并不具备将消息发到网络中的功能,这一功能需要委托操作系统来实现。在委托操作系统发送消息时,必须提供IP地址而不是域名,IP地址是一串32比特数字,按8比特为一组,分成四组。
Socket库提供查询IP地址的功能,通过解析器向DNS服务器发出查询,并接收返回的响应消息。
三 全世界的DNS服务器大接力
寻找相应的DNS服务器并获取相应的IP地址
四 委托协议栈发送消息。

    推荐阅读