第二章 探究浏览器如何生成http请求信息

生成http请求信息

我们的探索之旅从在浏览器中输入网址,那么,什么事网址呢?网址,准确的来说是URL,网址不仅包括http://开头的一串东西,还包括其他一些比如:“ftp:“,”file:”,“mailto:”等。
之所以有各式各样的URL,是因为尽管我们通常是使用浏览器来访问web服务器的,但实际上浏览器的功能还有ftp上传下载,同时也具备电子邮件客户端的功能。可以说,浏览器上一个具备多种客户端功能的综合性客户端软件,因此它需要一些东西来判断应该使用它的哪一种功能,所以需要url加以区分。

第二章 探究浏览器如何生成http请求信息

浏览器的第一步工作就是对URL进行解析,从而生成发送给web服务器的请求消息。
当浏览器收到http请求,会对URL进行解析,拆分解析的过程如下图:
第二章 探究浏览器如何生成http请求信息
文件名可以被省略,如果被省略就会访问在web端事先设好的默认文件夹,一般是index.html或者default.html。
比如
http://www.aaa.com/dir/ 表示访问dir文件夹下的默认文件
http://www.aaa.com 表示访问web服务器根目录下的默认文件

了解完了URL之后,我们知道要访问哪里了,接下来,浏览器会使用http协议来访问web服务器,不过在此之前,我们先讲一讲http协议是怎么回事。

第二章 探究浏览器如何生成http请求信息

http协议定义来服务器和浏览器交互的消息内容和步骤。
请求消息中包括内容是“对什么进行什么样的操作“,其中对什么部分称为URL,怎么操作部分称为方法。
第二章 探究浏览器如何生成http请求信息

第二章 探究浏览器如何生成http请求信息

知道了方法,接下来我们生成http请求:
第二章 探究浏览器如何生成http请求信息

首先,消息的第一行为请求行,这里的重点是开头的方法,告诉web对它进行怎么样的操作。
第二行为消息头。尽管通过第一行我们就可以大致了解请求的内容,但有些情况还需要一些额外的信息,消息头就是用来存放这些额外的信息。
消息头结束后,还要添加一个完全没有内容的空行,然后写上需要发送的数据。这一部分被称为消息体,消息体可以为空。消息体结束后,整个消息就结束了。第二章 探究浏览器如何生成http请求信息
第二章 探究浏览器如何生成http请求信息
第二章 探究浏览器如何生成http请求信息
第二章 探究浏览器如何生成http请求信息

服务器收到请求后做出处理并响应,浏览器会收到响应信息,响应信息的格式和思路和请求消息是相同的,差别只在第一行:在响应信息中,第一行的内容为状态码和响应短语,用来表示响应成功或者出错。

下面用图描绘一个完整的请求过程:
第二章 探究浏览器如何生成http请求信息

第二章 探究浏览器如何生成http请求信息
第二章 探究浏览器如何生成http请求信息