Http连接通信过程

Http是TCP的上层协议,HTTP通信是基于TCP连接的。
那么Http通信过程是怎么样的呢?
我们最常用的Http客户端就是浏览器,我们浏览网站的过程就是一个Http的通信过程。
1.输入网址,回车;浏览器会根据网址在DNS中查找对应的IP地址。
首先在DNS本地缓存表中查找,如果有则直接告诉IP地址。如果没有则要求网关DNS进行查找,如此下去,找到对应的IP后,则返回会给浏览器。

2.建立TCP连接
在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的。连接建立过程即著名的TCP三次握手,IP为上个步骤中获取的IP,端口一般为80。

3.发送HTTP消息 
Web浏览器向Web服务器发送请求命令。
我在下面例子中使用了如下格式的HTTP消息:
GET /  HTTP/1.1\r\nAccept:   */*\r\nHost:   %s:%d\r\nConnection: close\r\nAccept-Language:   zh-cn\r\nUser-Agent:   Chrome (compatible;   MSIE   5.01;   Windows   NT   5.0)

4.Web服务器发送数据
服务器收到HTTP请求消息后,首先会发回一个ACK消息;
然后发送HTML数据包(经过分段的TCP数据包(TCP segment of PDU),根据数据流的大小分成几个段);
浏览器回复相应的ACK消息。
(通过抓包得到)

5.Web服务器发送应答码
待数据发送完毕后,服务器会发送应答码HTTP/1.1 200 OK。
浏览器会通过TCP PDU的序列号进行组包、解析HTML,在浏览器上显示。
 
6、Web服务器关闭TCP连接
在HTTP请求消息中当Connection: close,数据发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值