一、http是如何使用tcp连接的?
http连接本质就是tcp连接和一些使用连接的规则。所有的http通讯都是由tcp/ip来承载的。tcp/ip是全球计算机及网络设备都在使用的一种常用的分组交换的网络分层协议集。客户端程序打开一条tcp/ip连接。连接到可能运行在世界任何地方的服务器应用程序。
1.tcp流是分段的,由ip分组传送
网络协议栈
http要传送一条报文的时候,会以流的形式将报文数据的内容通过一条打开的TCP连接按照顺序传输。TCP收到数据流后,会将数据流分成被称之为段的小数据块,并将段封装在ip分组中,通过
因特网进行传输,见下图。这些工作都是TCP/IP软件来处理的,HTTP程序员什么都看不到。
2.一个tcp连接是由4个值来识别的,<源ip地址:源端口 目的ip地址:目的端口> tcp 是通过端口号来保持所有这些连接的正确运行的。
3. tcp客户端和服务器是通过tcp套接字接口来进行通讯的,如下图所示:
对上图的说明:
web服务器等待连接(S4),客户端根据URL判定出IP地址和端口号,并建立一条到服务器的TCP连接C3,连接建立成功,客户端发送http请求C5,服务器读取请求S6,
服务器对请求进行处理,执行请求的动作S7,客户端读取数据C6,客户端处理数据。
二、TCP连接的时延、瓶颈、存在的障碍
1.tcp连接建立握手
2.tcp慢启动拥塞机制
3.数据聚集的Nagle算法
4.用于捎带确认 的TCP确认suanfa
5.TIME_WAIT 时延和端口耗尽
三、HTTP连接的优化
1.并行连接
并行连接可能会提高页面的访问速度,但是并行连接不一定很快
2.持久连接keep-alive
3.管道化连接 http/1.1
四、关闭连接
1.任意时刻可以关闭连接
2.Content-Length及截尾
3.连接关闭容限、重试及幂等性
4.正常关闭