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