发布者:上海IT外包来源:http://www.lanmon.net点击数:1167
蓝盟IT小贴士,来喽!
完整的请求流
因为HTTP基于TCP协议,所以客户端首先基于IP地址、端口和服务器建立TCP连接。 建立连接的过程是TCP协议三次握手的过程。
建立连接后,将发送GET请求行的信息,例如GET /index.html用于获取index.html的信息。
服务器接收到请求信息后,读取相应的HTML文件,并将数据以ASCII字符流的形式返回给客户端。
HTML文档传输完成后断开连接。
特征
第一个是只有一个请求行,没有HTTP请求标头和请求主体。 因为只有一个请求行可以完全表达客户端的需求。
第二,服务器没有返回头信息。 这是因为服务器端不需要向客户端传递很多信息,只需要返回数据即可。
第三,返回的文件的内容通过ASCII字符流传输。 由于都是HTML格式的文件,所以最好使用ASCII字节码进行传输。
HTTP/1.0
HTTP/0.9存在许多问题,包括
只支持HTML类型的文件,不能传输JS、CSS、字体、图像、视频等类型的文件。
文件传输格式仅限于ASCII,不能输出其他类型的编码文件。
只有请求行,传送到服务器的信息太少。
不能只响应请求数据,也不能将多余的数据传输到浏览器。
HTTP/1.1
虽然HTTP/1.0现在可以传输不同类型的文件,但是每次发出HTTP请求时都需要经过以下阶段。
建立TCP连接
HTTP请求:
HTTP响应:
断开TCP连接。
HTTP/1.1中依然存在的问题
虽然HTTP/1.1采取了许多优化资源加载速度的战略,也取得了一定的效果,但HTTP/1.1的带宽利用率并不理想,也是HTTP/1.1的中心问题。
带宽是指每秒可以发送和接收的最大字节数。 每秒能够发送的最大字节数称为上行带宽,每秒能够接收的最大字节数称为下行带宽。
HTTP/1.1对带宽的利用率不理想,是因为HTTP/1.1难以使带宽变满。 例如,我们常说的100M的带宽,实际下载速度可以达到12.5M/S,但在采用HTTP/1.1的情况下,加载页面资源时最多只能使用2.5M/S,很难全部填满12.5M。
文/上海蓝盟 IT外包专家
分享到: