HTTP基础之三(TCP连接)

http连接是基于tcp连接的,只是增加了一些使用tcp的规则。tcp连接是可靠连接,可以精确快速发送数据。tcp连接以IP数据包(IP数据电报)为单位传输数据。

通过这种方式,HTTP协议处于协议栈的顶层.如下图:

当HTTP想要传输数据的时候,会将消息数据的内容转换为流,通过建立的TCP连接,TCP会将流数据分割为一个一个的TCP数据片段,这些片段会放到TCP里面的信封——称为IP数据包,这个过程是TCP软件处理的,针对HTTP是透明的。每一个TCP的数据片段,都会放到IP数据包信封,通过这个信封被传输到网络上的任何IP。每一个IP数据包包含如下:

IP数据包头:包含目标IP地址,数据大小等其它标志位信息

TCP数据片段头:包含端口信息,TCP控制标志,完整的数据顺序值

TCP数据块:数据内容比如:http请求行(GET /index.html HTTP/1.2)

 

浏览器到服务器的步骤(https://zhangxuefei.site为例)

①浏览器从URL里面提取hostname(zhangxuefei.top)

②通过DNS找到hostname对应的IP地址(120.26.95.77)

③浏览器从URL里面获取端口号80(默认)

④浏览器建立到120.26.95.77:80的tcp连接(在此之前服务器上已经有了tcp的socket监听80端口)

⑤浏览器发送HTTP GET请求到服务器

⑥浏览器获取到HTTP响应消息

⑦浏览器关闭连接

(了解更多tcp socket内容可以看看这篇文章

作者:张雪飞
出处:https://zhangxuefei.site/p/1024
版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

发表评论

电子邮件地址不会被公开。 必填项已用*标注