HTTP1.0、HTTP1.1以及HTTP2.0 主要特性对比

HTTP1.0
早期1.0版本的http协议是一种无状态、无连接的应用层协议。浏览器每次发送请求都和服务器建立一个tcp连接,进行三次握手,服务器处理完后立即断开连接,服务器也不记录过去的状态。
对于数据量大的长连接请求来说,如果该请求没有得到及时响应,就会阻塞下一个请求。
http1.1就是来解决这些问题的。

HTTP1.1
首先是长连接,http1.0需要在请求中加上connection:keep-alive来告诉服务器不要关闭,后面还有请求要发送。而http1.1默认支持长连接,它能够发送多个请求,节约带宽。如果请求太频繁,并且有一个请求处理很久的话,后面的请求还是可能会阻塞。
于是就有了http2.0。

HTTP2.0
1、多路复用
所有的http2.0通信都在一个tcp连接上完成,并且这个连接可以处理任意数量的请求,所以把多个js、css文件合并成一个对于页面的优化已经没什么效果了。
不同的请求对应着不同的stream id,当有请求被阻塞时,服务器就会先处理别的请求,然后再根据stream id找到被阻塞的请求进行处理。
2、头部(request header)压缩
在http2.0之前,头部是以纯文本的形式发送的,通常会给每个请求增加500-800字节的负荷,而http2.0利用HPACK对消息头进行压缩传输,并且相同的头部信息不会通过请求发送,会使用之前请求携带的头部信息,节省了报文头占用的流量。
3、服务器推送
客户端发起第一个请求的时候,服务器会知道其附加的资源文件(js、css),它会顺便把客户端需要的资源一起推送到客户端,以免客户端再次发起请求。速度自然是快了很多。

缺点:HTTP/2出现丢包时,整个 TCP 都要开始等待重传,那么就会阻塞该TCP连接中的所有请求,而对于 HTTP1 来说,可以开启多个 TCP 连接,出现这种情况反到只会影响其中一个连接,剩余的 TCP 连接还可以正常传输数据
HTTP3搞了一个基于 UDP 协议的“QUIC”协议,QUIC基于UDP,而UDP是“无连接”的,根本就不需要“握手”和“挥手”,所以就比TCP来得快。此外QUIC也实现了可靠传输,保证数据一定能够抵达目的地,解决了HTTP2队头阻塞的问题。

HTTP和HTTPS协议的区别

HTTP和HTTPS协议的主要区别如下:
● HTTPS协议需要CA证书(数字证书),费用较高;而HTTP协议不需要;
● HTTP协议是超文本传输协议,信息是明文传输的,HTTPS则是具有安全性的SSL加密传输协议;
● 使用不同的连接方式,端口也不同,HTTP协议端口是80,HTTPS协议端口是443;
● HTTP协议连接很简单,是无状态的;HTTPS协议是有SSL和HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP更加安全。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值