因此,HTTP/1.1增加了Host字段,用来表示当前的域名地址 , 这样服务器就可以根据不同的Host值做不同的处理 。
4、支持对动态生成的内容在HTTP/1.0中需要在响应头中完整的设置数据的大小 , 这样浏览器才能根据设置数据的大小来接受数据 。但是随着服务器端的技术发展,很多页面都是动态生成的,在传输数据之前无法知道完整的数据大?。?这样肯定不行的 , 浏览器根本不知道什么时候数据传输完毕 。
HTTP/1.1就完美的解决了这个问题,通过把数据包分割成若干个任意大小的数据块,每个数据块都会附上当前数据块的长度 , 最后发送一个长度为0作为结束的标志,这样就提供了对动态内容的支持 。
5、客户端Cookie想象一下为什么我们需要cookie呢?cookie的作用是什么?你还记得HTTP是无状态的了么?每次发送响应,然后就没有然后了,那当我们需要记录用户状态时怎么做呢?HTTP/1.1就引入了客户端Cookie机制,让客户端可以存储一段数据,传递给服务器,这样服务器就能从保存的数据中读取一定的信息 。来实现一定程度的状态保持和用户识别 。
当然 , 因为Cookie可以在客户端存储数据的特性,也在一定情况下当作缓存来使用,可以通过浏览器的API来获取Cookie,但是其实这样做是不安全的 , 你也可以通过响应头来限制客户端访问Cookie 。
当然,还可以设置Cookie的过期时间,设置Cookie的作用域等等 。这个我们后面再具体说 。
6、安全机制HTTP/1.1相比于HTTP/1.0增加很多安全机制 , 这些安全机制都融合进了HTTP的字段使用中,比如SameSite、Referer、Origin,比如Cookie的HttpOnly等等 。我们先知道这回事 。
HTTPS:给你的钱包上个锁HTTP/1.1已经新增了很多安全机制,那HTTP就真的安全了么?答案显然是否定的 , 因为HTTP本身的特性:明文传输 。所以HTTP自己根本无法解决传输数据的安全性问题,获取HTTP传输的数据非常容易 。
这就导致了你在网络上的任何访问都可能引起你实际的损失和个人信息的透明 。在一些购物、政府场景下,对于信息的安全要求更是极高 , 但是我也说了,HTTP自身是解决不了的 。那咋整?
基于这样的前提,HTTPS诞生了 , 但是实际上来说,HTTPS就是HTTP,只不过在HTTP的上一层不再是TCP了,而是SSL/TLS,换句话说,就是在HTTP和TCP中间又加了一层:
文章插图
所以你看 , 其实HTTPS就是HTTP,它的一切都是HTTP赋予的,只不过,HTTP的报文要经过SSL/TLS层的加工处理后才交给TCP 。SSL和TLS其实是一个东西,最开始的时候是SSL , 后来标准化了之后就叫做TLS了 。
HTTP/2:HTTP的极限现在绝大多数网站所使用的还是HTTP/1.1,这个毋庸置疑 。在现在的阶段,HTTP/2在Top1000的网站上也得到了不错的应用,比如谷歌、苹果等等 。而在未来 , 可能会在真正实行的时候直接大力推广使用HTTP/3了,当然,真正的想在应用中广泛使用HTTP/3也不会那么快 。
那么我们来简单看下,相比于HTTP/1.1,它有哪些划时代的增强吧 。
HTTPS帮助我们解决了HTTP数据传输的安全性问题 , 并且标准已经十分成熟 。所以无论是2也好,还是3也罢 , 后续的努力,都是在为了性能所奋斗 。
一个核心优化就是二进制报文传输,虽然这样不利于阅读,但是在机器的理解和识别上却变得十分简单快速 。并且基于二进制又引入了流的概念,我们可以把整个HTTP报文分割成一个又一个小的包,然后每个包会赋予一个唯一的ID , 这些包按照次序组装起来就是HTTP的报文了 。这个东东有一个大名鼎鼎的称呼 , 叫做多路复用 。
除了多路复用,HTTP/2还可以设置请求的优先级、压缩头字段、服务器推送等等 。
最后 , 我为什么会起这样一个标题呢?因为在使用TCP作为传输协议的基础上,想要再在应用层层面提升性能已经是无计可施了,因为TCP的一些自身特性 , 以及设备僵化等等原因,其实HTTP/2可以说是性能的极限了 。所以,基于这样的原因 , 才有了HTTP/3 。
HTTP/3:面向未来的协议为什么会有HTTP/3呢?HTTP/3又做了什么事情进一步优化HTTP协议的性能呢?
出现HTTP/3的主要问题还是为了解决HTTP/2无法解决的性能问题,那HTTP/2为啥无法解决呢?因为HTTP/2是基于TCP的,虽然HTTP/2在应用层的层面解决了队头阻塞的问题,但是到了TCP这里,你还是要在TCP这条马路上传输数据包啊,TCP还是会队头阻塞,所以,你要想真正的解决队头阻塞的问题,就只能完全舍弃有问题的这个协议 。
推荐阅读
- Substring 在BCL和CLR里面搞了啥
- JAVA开发搞了一年多的大数据,究竟干了点啥
- 用 VS Code 搞 Qt6:让信号和槽自动建立连接
- 奥比岛:梦想国度真正被频繁投诉的是哪支施工队答案是什么
- 《英雄联盟》游戏中“烬”的大招怎么放(英雄联盟烬开大怎么取消)
- 樱桃的拼音正确读音-“樱桃”怎么读?
- 清除浏览器缓存怎么操作(如何真正清除手机缓存)
- 有油款 “倩碧黄油”——————真假辨别 上次的兰蔻粉水鉴别方法已经分享过了
- 河北首家城商行传统核心业务国产化,TDSQL突破三“最”为秦皇岛银行保驾护航
- 新耳机“煲机”真的有用吗该怎么“煲“呢(tws耳机需要煲机吗)