聊一聊 http2.0
1。 我们认识http 协议,从最初的,客户端与服务器进行通讯,基于连接发生的请求与响应
- 在HTTP1.0时代,连接无法复用,每次下完单,都被强制登出/关机,下一次下单,就得重新登录。
- 为了解决http1.0的单链接,http1.1 又提出了 保持链接设置Connection:Keep-Alive
- http1.1 默认开启了keep-alive,但是在keep-alive的背景下,必须等到请求1完成之后,再继续处理2,3,这样的方式很浪费时间,于是又提出了 HTTPpipelining 不用等到请求1 完成,就可以直接继续2,3,4
只可惜服务器是按照顺序处理的,如果服务1,没有响应,那么2,3,4 服务就需要原地等待,只有等到1处理完成之后,才能处理后面2,3,4.为了解决这个问题,服务器需要增加好几个通道,建立多个链接,就算其中一个请求堵塞了,也不会影响其他的。
但是这样也不能解决问题 比如建立多个链接,链接数目有限,每换一个服务链接,就得从新TCP 三次握手,容易造成服务断开,随着服务的增加,订单也只能按照先进先出的顺序来排队,但是堵塞依旧很严重。所以这里创造了SPDY协议,后续在此基础上,又起草了 http2.0协议
由上,HTTP/1.1相较于 HTTP/1.0 协议的区别主要体现在:
1 缓存处理
2 带宽优化及网络连接的使用
3 错误通知的管理
4 消息在网络中的发送
5 互联网地址的维护
6 安全性及完整性
常用的请求方式
GET 请求获取Request-URI所标识的资源
POST 在Request-URI所标识的资源后附加新的数据
HEAD 请求获取由Request-URI所标识的资源的响应消息报头
PUT 请求服务器存储一个资源,并用Request-URI作为其标识
DELETE 请求服务器删除Request-URI所标识的资源
TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT 保留将来使用
OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求
GET方法:在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET方法向服务器获取资源,POST方法要求被请求服务器接受附在请求后面的数据,常用于提交表单。GET是用于获取数据的,POST一般用于将数据发给服务器之用。
HTTP 1.1状态代码及其含义
状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求
2. 多路复用
多路复用,即单个链接同时进行多个业务单元数据的传输。
有了多路复用之后,在同一个交易渠道上,能够同时完成客户所有订单货物的采购和交付,客户端只要在每个订单上备注好ID,货物拆分发货,乱序到达之后按照ID重新组装即可,不会因为某个包裹的延误导致整体配送进度的推迟。 简而言之 就是打包服务
- 请求优先级
-假如订单2的商品特别重要,就在订单2上留一段备注,服务端收到订单之后,会优先发出订单2的包裹。
同时,服务端评估订单5是短保产品,需要尽快到货,也会将订单5优先发货。
头部压缩
- HTTP1.X的头部越来越膨胀,很多都是重复且多余的,HTTP2.0可以压缩头部的大小,并且避免了重复的传输,可以大大降低延迟。
就好比货物越轻,运送速度则越快,HTTP2.0协议下,卖家发货时将多余包装扔掉,这样买家就能更快地收到货啦!
服务端推送 就是预定
- 服务端推送是HTTP2.0的一大亮点。
在客户端下了订单1之后,服务端预先判断客户端可能会需要下订单2、3、4……于是主动发货。这种主动推送的机制,可以节省接下来的几个请求耗时,提升访问速度。
- 科普完毕的分割线
有了HTTP2.0之后,卖家(网站)能够更快地将内容呈现给买家(用户)。
参考原文地址
聊一聊 http2.0相关推荐
- HTTP2.0多路复用
上篇文章介绍了http1.1相对于http2的一些不足,本篇文章来聊一聊http2的一些优点,但是http2的优点比较多,并且需要结合源码展示,所以关于htt2的一些特点,我打算拆分成多篇文章,本篇文 ...
- http2.0的时代来了
KS Knowledge Sharing 知识分享 现在是资源共享的时代,同样也是知识分享的时代,如果你觉得本文能学到知识,请把知识与别人分享! 开篇HTTP发展的心路历程 上图:连接无法复用 上图: ...
- PHP支持http2,swoole-1.8.2 已发布,支持Http2.0协议
PHP的异步.并行.高性能网络通信引擎swoole已发布 1.8.2版本 ,此版本增加了对Http2.0协议的支持,另外修复了swoole-1.8.1版本存在的一些BUG.基于Http2.0协议, ...
- 【网络】HTTP2.0新特性
前段时间实习生面试的时候被问到HTTP2.0以及和HTTP1.1的区别,貌似网上对这一块的讲解很少,而且大多数就是空洞的理论堆砌,看也看不懂.不过花点时间慢慢找还是可以找到很不错的资料的.整理如下,希 ...
- HTTP1.0,HTTP1.1,HTTPS和HTTP2.0的区别
HTTP1.0和HTTP1.1的一些区别 缓存处理,在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控 ...
- 转:http2.0时代即将到来~~~~~
2019独角兽企业重金招聘Python工程师标准>>> HTTP2.0,WEB开发者不可错过的新标准! 08月12日 谢世诚 发表 三周之前,在东京开会的Mark Nottingha ...
- 说说你对http、https、http2.0的理解【前端每日一题-25】
说说你对http.https.http2.0的理解? HTTP的基本优化 影响一个HTTP网络请求的因素主要有两个:带宽和延迟. 带宽 如果说我们还停留在拨号上网的阶段,带宽可能会成为一个比较严重影响 ...
- HTTP的前世今生(HTTP1.1,HTTPS,SPDY,HTTP2.0,QUIC,HTTP3.0)
本文将从HTTP不断发展的时间线来讲解与其相关的知识点,其中包括HTTP1.1,HTTPS,SPDY,HTTP2.0,QUIC,HTTP3.0等,文章中内容涉及面较广,属于扫盲级别,不会特别深入某个知 ...
- HTTP1.0、HTTP1.1和HTTP2.0的区别
HTTP1.0.HTTP1.1和HTTP2.0的区别 文章目录 HTTP1.0.HTTP1.1和HTTP2.0的区别 一.HTTP的历史 二.HTTP的基本优化 三.HTTP1.0和HTTP1.1的区 ...
- http2.0 的时代来了
来源:https://www.jianshu.com/p/712eb3a65d33 作者:互扯程序 日期:2017.12.28 原文如下: 0. 开篇HTTP发展的心路历程 连接无法复用 设置Conn ...
最新文章
- eclipse删除perspective
- 哈工大计算机专业去哪里工作,想读计算机专业,哈工深和华科应该选择哪个?...
- JVM的YGC,这次被它搞惨了!
- jQuery之选项卡的实现
- buu 凯撒?替换?呵呵!
- 【POJ - 1724 】ROADS (带限制的最短路 或 dfs 或 A*算法,双权值)
- [Jmeter] 基本使用的总结
- MSDN宝藏库中,初学者应该看的东西【整理的很辛苦哦】
- 什么是大平层?大平层比别墅好吗?
- Tomcat5.5中配置虚拟路径
- 华为模拟器ensp与真实机器连接使用的配置内容一
- CIC Dips Its Toe Back In US Waters
- java生成密码字典
- GitHub 上有哪些优秀的 Python 爬虫项目?
- 因为一件事,公司的前后端打起来了
- matlab 中偏微分符号,一阶、二阶偏微分方程符号运算
- nacos get changed dataId error, code: 403
- 关于SQL Server中将数值类型转换为字符串的问题
- Angular报注入错误,以及解决方式,$injector:unpr
- 树莓派小爱同学、天猫精灵、智能音箱、百度语音极速版、百度语音标准版、语音识别、语音合成终极方案
热门文章
- 《网络营销实战密码》书评征文获奖名单揭晓
- Django项目实践2 - Django模板(网页多语种支持/国际化)
- 【医疗影像处理】使用GMM分割3D T1得到wm/gm/csf/background
- dev 命令行参数调用_在Linux系统上使用简单命令行创建高强度的预共享密钥
- 蓝桥杯2017年第八届C/C++省赛C组第二题-兴趣小组
- Eclipse快速导入继承类的方法
- L1-036 A乘以B (5 分)—团体程序设计天梯赛
- 第四步_安装gcc交叉编译工具
- 关于require()和export引入依赖的区别
- uoj#283. 直径拆除鸡(构造)