HTTP1.0~HTTP1.1
长头域
HTTP1.1~HTTP2
多复数压推
HTTP1.0 HTTP 1.1主要区别
长连接
HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而HTTP1.1默认支持长连接。
HTTP是基于TCP/IP协议的,创建一个TCP连接是需要经过三次握手的,有一定的开销,如果每次通讯都要重新建立连接的话,对性能有影响。因此最好能维持一个长连接,可以用个长连接来发多个请求。
节约带宽
HTTP 1.1支持只发送header信息(不带任何body信息),如果服务器认为客户端有权限请求服务器,则返回100,否则返回401。客户端如果接受到100,才开始把请求body发送到服务器。
这样当服务器返回401的时候,客户端就可以不用发送请求body了,节约了带宽。
另外HTTP还支持传送内容的一部分。这样当客户端已经有一部分的资源后,只需要跟服务器请求另外的部分资源即可。这是支持文件断点续传的基础。
HOST域
现在可以web server例如tomat,设置虚拟站点是非常常见的,也即是说,web server上的多个虚拟站点可以共享同一个ip和端口。
HTTP1.0是没有host域的,HTTP1.1才支持这个参数。
http1.1协议要求必须加上host,主要是为同一服务器提供两个以上的站点服务。比如www1.fucku.com和www2.fucku.com两个域名IP相同,由同一台服务器支持,服务器可以根据host域,分别提供不同的服务,在客户端看来是两个完全不同的站点。
HTTP1.1 HTTP 2.0主要区别
多路复用+单一长连接
HTTP2.0使用了多路复用的技术,做到同一个连接并发处理多个请求,而且并发请求的数量比HTTP1.1大了好几个数量级。
当然HTTP1.1也可以多建立几个TCP连接,来支持处理更多并发的请求,但是创建TCP连接本身也是有开销的。
在HTTP/2中,客户端向某个域名的服务器请求页面的过程中,只会创建一条TCP连接,即使这页面可能包含上百个资源。 单一的连接应该是HTTP2的主要优势,单一的连接能减少TCP握手带来的时延 。HTTP2中用一条单一的长连接,避免了创建多个TCP连接带来的网络开销,提高了吞吐量
HTTP2虽然只有一条TCP连接,但是在逻辑上分成了很多stream。
HTTP2把要传输的信息分割成一个个二进制帧,首部信息会被封装到HEADER Frame,相应的request body就放到DATA Frame,一个帧你可以看成路上的一辆车,只要给这些车编号,让1号车都走1号门出,2号车都走2号门出,就把不同的http请求或者响应区分开来了。但是,这里要求同一个请求或者响应的帧必须是有有序的,要保证FIFO的,但是不同的请求或者响应帧可以互相穿插。这就是HTTP2的多路复用,是不是充分利用了网络带宽,是不是提高了并发度?
数据压缩
HTTP1.1不支持header数据的压缩,HTTP2.0使用HPACK算法对header的数据进行压缩,这样数据体积小了,在网络上传输就会更快。
http1.x一直都是plain text,对此我只能想到一个优点,便于阅读和debug。但是,现在很多都走https,SSL也把plain text变成了二进制,那这个优点也没了。于是HTTP2搞了个HPACK压缩来压缩头部,减少报文大小(调试这样的协议将需要curl这样的工具,要进一步地分析网络数据流需要类似Wireshark的http2解析器)。
服务器推送(Server Push)
当一个客户端请求资源X,而服务器知道它很可能也需要资源Z的情况下,服务器可以在客户端发送请求前,主动将资源Z推送给客户端。
这个功能帮助客户端将Z放进缓存以备将来之需。
http2.0的格式定义更接近tcp层的方式,这张二机制的方式十分高效且精简。length定义了整个frame的开始到结束,type定义frame的类型(一共10种),flags用bit位定义一些重要的参数,stream id用作流控制,剩下的payload就是request的正文了。
虽然看上去协议的格式和http1.x完全不同了,实际上http2.0并没有改变http1.x的语义,只是把原来http1.x的header和body部分用frame重新封装了一层而已。调试的时候浏览器甚至会把http2.0的frame自动还原成http1.x的格式。具体的协议关系可以用下图表示:
相关推荐
可以通过servlet以及jsp的使用,实现对复数的加减乘除
外研社二年级英语上期末复习题一【字母+单复数】精选.doc
适于小白入门,复数类的编写(纯属个人理解,如有错误请多多指教)
1.1复数及其运算.pdf
1证明实数域和复数域不存在其它的数域[汇编].pdf
NULL 博文链接:https://helloklzs.iteye.com/blog/1048480
vgg模型在复数域的代码,参照deep complex network论文中在残差网络上的改进,基于keras
CV09:C ++复数计算器测试
复数力矩法SSSC抑制SSR模型,基于pscad
针对复数域网络编码中复数θ的选取以及中继和目的节点处如何有效检测原始数据的问题,提出一种收发联合优化的预编码方案。设计一种等相位预编码器选取编码复数θ以降低数据传输过程中的误码率,提出一种迭代预均衡...
针对复数域上矩阵多项式空间基的求解问题.借助复数域K上n阶矩阵A的Jordon标准形JA,给出A的一种特殊分解式,讨论矩阵多项式空间K[JA]={f(JA)|f(x)∈K[x]}的基及其子空间的直和分解,进而确定复数域上矩阵多项式空间K[A]...
复数域神经网络;全面解析;适合新手和小白
复数域上的双同心圆域定理及其应用,刘品,滕岩梅,本文以复数域的柯西基本收敛定理为基础,从该原则出发,证明闭区域(闭集)套定理。在此基础上,提出了一种新的双同心圆域定理,
编写一个完整的C#应用程序使用复数类Complex,并验证两个复数1+2i和3+4i相加产生一个新的复数4+6i。复数类Complex必须满足如下要求: (1)复数类Complex的属性有: RealPart: int型,代表复数的实数部分 ...
用于复数的拟合,基于牛顿法的复数非线性曲线拟合。该复数拟合函数效果不错,可以根据自己的选择来调整。相比于matlab中的非线性拟合,迭代初值的问题不需要考虑。
自控理论复数域数学模型
c#实现实数和复数的常用矩阵运算(矩阵乘、数乘、求逆、卷积、产生服从正态分布的随机数)
复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器...
设计任意两个复数实现4则运算(复数加法、减法、乘法、除法)的Web程序。要求采用如下的设计模式: (1)JavaBea+JSP (2)JavaBean+Servlet+JSP
多复数混合运算表达式在终端以字符串的形式输入,并且程序会检查输入是否符合规范,比如括号是否匹配等。通过检查后程序就会将多复数混合运算的结果打印出来。