1、生成HTTP请求消息
(1)、解析URL
从在qq浏览器中输入网址(url)开始,如http://www.cnblogs.com/lybpy/p/7957251.html,接下来qq浏览器开始解析该url
http: 表示要访问web服务器,使用的协议类型是HTTP协议;其它还有ftp:,file:等
// 其后的字符串表示服务器的名称
/lybpy/p/7957251.html 文件的路径名
因此该URL表示要访问 www.cnblogs.com 服务器中 /lybpy/p/ 目录下的 7957251.html 文件
(2)、认识HTTP协议
解析完URL,qq浏览器会使用HTTP协议来访问 www.cnblogs.com 这个web服务器,不过先要简单了解一下HTTP的工作过程。
HTTP协议定义了客户端和服务器间交互的消息内容和步骤。
首先,客户端向服务器发送请求消息。请求消息中包含的内容时 “对什么” 和 “进行怎样的操作” 两部分。
- “对什么” 称为URI(统一资源标识符),URI是网页数据文件名如 /lybpy/p/7957251.html 或 cgi程序文件名
- “进行怎样的操作” 称为方法,主要是 GET ,POST
GET方法 如果URI指定文件则返回文件的内容;若是cgi程序则返回该程序的输出数据
POST方法 从客户端向服务器发送数据,一般用于发送表单中填写的数据
接着,web服务器收到消息后解析,如对/lybpy/p/7957251.html使用GET方法,将结果存放在响应消息中;响应消息格式:状态码,头字段,网页数据。
最后,响应消息被发回客户端如qq浏览器,浏览器从消息中读出所需的数据并显示在屏幕上。至此,HTTP的整个过程就完了。
(3)、生成HTTP请求消息
浏览器发送请求消息,消息的固定格式:
(4)、响应消息
浏览器发送请求消息后,web服务器会返回响应消息。响应消息中第一行是状态码和响应短语。状态码是数字,告知执行结果;响应短语是文字,告知执行结果。状态码如下:
1xx 告知请求的处理进度和情况
2xx 成功
3xx 表示需要进一步操作
4xx 客户端错误
5xx 服务器错误
返回响应消息后,qq浏览器将数据取出显示在屏幕上即为网页。
若网页内容只有文字,则过程结束。
若网页中还有图片等资源,还有下文。以网页为例,浏览器在屏幕上留出用于显示图片的空间,然后再次(或多次)访问web服务器获取图片资源,并显示在相应位置。
接下来qq浏览器委托os向DNS server查询IP