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相关推荐

  1. HTTP2.0多路复用

    上篇文章介绍了http1.1相对于http2的一些不足,本篇文章来聊一聊http2的一些优点,但是http2的优点比较多,并且需要结合源码展示,所以关于htt2的一些特点,我打算拆分成多篇文章,本篇文 ...

  2. http2.0的时代来了

    KS Knowledge Sharing 知识分享 现在是资源共享的时代,同样也是知识分享的时代,如果你觉得本文能学到知识,请把知识与别人分享! 开篇HTTP发展的心路历程 上图:连接无法复用 上图: ...

  3. PHP支持http2,swoole-1.8.2 已发布,支持Http2.0协议

     PHP的异步.并行.高性能网络通信引擎swoole已发布 1.8.2版本 ,此版本增加了对Http2.0协议的支持,另外修复了swoole-1.8.1版本存在的一些BUG.基于Http2.0协议, ...

  4. 【网络】HTTP2.0新特性

    前段时间实习生面试的时候被问到HTTP2.0以及和HTTP1.1的区别,貌似网上对这一块的讲解很少,而且大多数就是空洞的理论堆砌,看也看不懂.不过花点时间慢慢找还是可以找到很不错的资料的.整理如下,希 ...

  5. HTTP1.0,HTTP1.1,HTTPS和HTTP2.0的区别

    HTTP1.0和HTTP1.1的一些区别 缓存处理,在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控 ...

  6. 转:http2.0时代即将到来~~~~~

    2019独角兽企业重金招聘Python工程师标准>>> HTTP2.0,WEB开发者不可错过的新标准! 08月12日 谢世诚 发表 三周之前,在东京开会的Mark Nottingha ...

  7. 说说你对http、https、http2.0的理解【前端每日一题-25】

    说说你对http.https.http2.0的理解? HTTP的基本优化 影响一个HTTP网络请求的因素主要有两个:带宽和延迟. 带宽 如果说我们还停留在拨号上网的阶段,带宽可能会成为一个比较严重影响 ...

  8. HTTP的前世今生(HTTP1.1,HTTPS,SPDY,HTTP2.0,QUIC,HTTP3.0)

    本文将从HTTP不断发展的时间线来讲解与其相关的知识点,其中包括HTTP1.1,HTTPS,SPDY,HTTP2.0,QUIC,HTTP3.0等,文章中内容涉及面较广,属于扫盲级别,不会特别深入某个知 ...

  9. HTTP1.0、HTTP1.1和HTTP2.0的区别

    HTTP1.0.HTTP1.1和HTTP2.0的区别 文章目录 HTTP1.0.HTTP1.1和HTTP2.0的区别 一.HTTP的历史 二.HTTP的基本优化 三.HTTP1.0和HTTP1.1的区 ...

  10. http2.0 的时代来了

    来源:https://www.jianshu.com/p/712eb3a65d33 作者:互扯程序 日期:2017.12.28 原文如下: 0. 开篇HTTP发展的心路历程 连接无法复用 设置Conn ...

最新文章

  1. eclipse删除perspective
  2. 哈工大计算机专业去哪里工作,想读计算机专业,哈工深和华科应该选择哪个?...
  3. JVM的YGC,这次被它搞惨了!
  4. jQuery之选项卡的实现
  5. buu 凯撒?替换?呵呵!
  6. 【POJ - 1724 】ROADS (带限制的最短路 或 dfs 或 A*算法,双权值)
  7. [Jmeter] 基本使用的总结
  8. MSDN宝藏库中,初学者应该看的东西【整理的很辛苦哦】
  9. 什么是大平层?大平层比别墅好吗?
  10. Tomcat5.5中配置虚拟路径
  11. 华为模拟器ensp与真实机器连接使用的配置内容一
  12. CIC Dips Its Toe Back In US Waters
  13. java生成密码字典
  14. GitHub 上有哪些优秀的 Python 爬虫项目?
  15. 因为一件事,公司的前后端打起来了
  16. matlab 中偏微分符号,一阶、二阶偏微分方程符号运算
  17. nacos get changed dataId error, code: 403
  18. 关于SQL Server中将数值类型转换为字符串的问题
  19. Angular报注入错误,以及解决方式,$injector:unpr
  20. 树莓派小爱同学、天猫精灵、智能音箱、百度语音极速版、百度语音标准版、语音识别、语音合成终极方案

热门文章

  1. 《网络营销实战密码》书评征文获奖名单揭晓
  2. Django项目实践2 - Django模板(网页多语种支持/国际化)
  3. 【医疗影像处理】使用GMM分割3D T1得到wm/gm/csf/background
  4. dev 命令行参数调用_在Linux系统上使用简单命令行创建高强度的预共享密钥
  5. 蓝桥杯2017年第八届C/C++省赛C组第二题-兴趣小组
  6. Eclipse快速导入继承类的方法
  7. L1-036 A乘以B (5 分)—团体程序设计天梯赛
  8. 第四步_安装gcc交叉编译工具
  9. 关于require()和export引入依赖的区别
  10. uoj#283. 直径拆除鸡(构造)