一个http请求提交之后的详细过程
2016-07-04 10:26:18 小德 网络 访问次数 1046



HTTP是无状态的应用层协议,是双方进行通信的规范。

一、建立Socket链接
我们输入一个请求xiaodeworld.com,首先要建立一个Socket链接,要建立Socket链接必须获取IP和端口。获取IP和端口号可通过DNS域名解析获取,把xiaodeworld.com变成IP和端口号。如果url里不包含端口号则使用默认的端口号.

DNS的过程是这样的:首先我们知道我们本地的机器上在配置网络时都会填写DNS,这样本机就会把这个url发给这个配置的DNS服务器,如果能够找到相应的url则返回其ip,否则该DNS将继续将该解析请求发送给上级DNS,整个DNS可以看做是一个树状结构,该请求将一直发送到根直到得到结果。现在已经拥有了目标ip和端口号,这样我们就可以打开socket连接了。


二、请求
链接成功后到web服务器发送请求,这个请求是get或者POST的方式,文件名指出所访问的文件。


三、web服务器响应
服务器收到请求后,从服务器的文档空间搜索子目录的文件的index.html,如果找到文件,web服务器把找到的文件传输给请求的浏览器。
为了告知浏览器,web服务器先传输一些HTTP头,再传体信息(具体内容),HTTp头和HTTP体用一个空行分开。

常见的HTTP头信息有
a 、 HTTP 1.0 200 OK 列出服务器正在运行的HTTP版本号和应答代码,
b、 MIME_Version:1.0   MIME 类型的版本
C、context_type:HTTP 体信息的MIME类型
d、context_length: 体信息的长度


四、关闭socket 链接


1、浏览器分析链接指向的URL;

2、浏览器向DNS请求解析链接的IP的地址;

3、域名解析系统解析出IP;

4、浏览器根据IP地址找到服务器默认80端口建立TCP连接;

5、浏览器根据URI发出具体请求命令;

6、服务器给出响应,我index.htm发送给浏览器;

7、释放TCP链接;

8、浏览器显示index.htm