HTTP2.0探究】的更多相关文章

http1.1和http2.0在请求379张图片的对比演示(HTTP2.0性能惊人). HTTP2.0是HTTP协议自1999年HTTP1.1发布后的首个更新,主要基于SPDY(读speedy).  该协议在2015年以RFC 7540正式发表 . 基本介绍 HTTP/1.1 时代 HTTP/1.1 对 HTTP/1.0 做了许多优化,也是当今使用得最多的 HTTP 协议: 持久化连接(keep-alive)以支持连接重用 分块传输编码(chunked)以支持流式响应 请求管道以支持并行请求处理…
最近在读一本书叫<web性能权威指南>谷歌公司高性能团队核心成员的权威之作. 一直听说HTTP2.0,对此也仅仅是耳闻,没有具体研读过,这次正好有两个篇章,分别讲HTTP1.1和HTTP2.0. 两者还能好好对比一下,两者之间的巨大区别,以及HTTP2.0解决了哪些实际问题. 无论什么网络,也不管所用网络协议是什么版本,所有应用都应该致力于消除或减少不必要的网络延迟,将需要传输的数据压缩至最少. HTTP2.0就是为了做这些优化而出现的. 一.HTTP1.1的几个特点 1)持久连接 每个TCP…
1.帧的类型: 在二进制分帧的结构中,头部有8个字节(64Bit),其中有一个字节(8Bit)来标志帧的类型: HTTP2.0规定了如下帧类型: DATA: 用于传输HTTP消息体 HEADERS:用户传输关于流的额外的首部字段 PRIORITY:用户指定或者重新指定引用资源的优先级 RST_STRING:用于通知流的非正常终止 SETTINGS:用于通知两端通信方式的数据配置 PUSH_PROMISE:用于发出创建流和服务器引用资源的要约 PING:用于计算往返时间,执行“活性”检查 GOAW…
HTTP2.0的所有通信都是在一个TCP连接上完成的. 1.信息传输术语 1.1 流 虚拟信道,可以承载双向消息,每个流都有一个唯一的整数标识符(1.2....N); 1.2 消息 逻辑上的HTTP消息,比如请求.响应,由一或多个帧组成. 1.3 帧 最小的通信单位,承载特定类型的数据,比如HTTP首部.负荷等等. 2.请求优先级 HTTP消息分解为多个独立帧之后,这些帧可以交错和传输顺序,进一步提升性能.为了做到这一点,每个流都可以带上31个比特位的优先级标示 服务器通过这些优先级的标志来分配…
作为一个经常和web打交道的程序员,了解这些协议是必须的,本文就向大家介绍一下这些协议的区别和基本概念,文中可能不局限于前端知识,还包括一些运维,协议方面的知识,希望能给读者带来一些收获,如有不对之处还请指出. 1. web始祖HTTP 全称:超文本传输协议(HyperText Transfer Protocol) 伴随着计算机网络和浏览器的诞生,HTTP1.0也随之而来,处于计算机网络中的应用层,HTTP是建立在TCP协议之上,所以HTTP协议的瓶颈及其优化技巧都是基于TCP协议本身的特性,例…
1. HTTP2.0的前世 http2.0的前世是http1.0和http1.1这两兄弟.虽然之前仅仅只有两个版本,但这两个版本所包含的协议规范之庞大,足以让任何一个有经验的工程师为之头疼.http1.0诞生于1996年,协议文档足足60页.之后第三年,http1.1也随之出生,协议文档膨胀到了176页.不过和我们手机端app升级不同的是,网络协议新版本并不会马上取代旧版本.实际上,1.0和1.1在之后很长的一段时间内一直并存,这是由于网络基础设施更新缓慢所决定的.今天的http2.0也是一样,…
HTTP2.0性能增强的核心:二进制分帧 HTTP 2.0最大的特点: 不会改动HTTP 的语义,HTTP 方法.状态码.URI 及首部字段,等等这些核心概念上一如往常,却能致力于突破上一代标准的性能限制,改进传输性能,实现低延迟和高吞吐量.而之所以叫2.0,是在于新增的二进制分帧层. 既然又要保证HTTP的各种动词,方法,首部都不受影响,那就需要在应用层(HTTP2.0)和传输层(TCP or UDP)之间增加一个二进制分帧层. 在二进制分帧层上,HTTP 2.0 会将所有传输的信息分割为更小…
1.http2.0完全是多路复用的,只需一个连接就可实现并行 可以将不同的请求夹杂在一起,只需一个连接就能加载一个页面. 2.可以让服务器将响应主动推动到客户端缓存中 当浏览器请求一个网页时,服务器除了返回HTML之外,还会推动客户端会用到的资源(比如页面中内嵌的样式文件,脚本文件,图片文件)到客户端的缓存中,避免后续请求这些资源时的往返时间浪费. 3.压缩报头,降低了开销 http1.1不支持头部压缩,所以产生了SPDY和HTTP2.0协议,SPDY使用的是通用的DEFLATE算法,HTTP2…
二进制分帧层 定义了如何封装 HTTP 消息并在客户端与服务器之间传输 http2.0的消息传输特点: 流 已建立的连接上的双向字节流 消息 与逻辑消息对应的完整的一系列数据帧 帧 http2.0通信的最小单位,每个帧包含帧收不,至少也会标识出前帧所属的流 如下图: 所有通信都在一个 TCP 连接上完成. 流是连接中的一个虚拟信道,可以承载双向的消息:每个流都有一个唯一的整数标识符( 1. 2…N). 消息是指逻辑上的 HTTP 消息,比如请求.响应等,由一或多个帧组成. 帧是最小的通信单位,承…
HTTP2.0协议 http2协议的草案已经出来了,阅读了一下网上的中文版,http2尽可能的兼容http1.1.改进了http1.1协议的不足. http1.0和http1.1的缺点: 1.http1.0只允许在一个连接上建立当前未完成的请求 2.http1.1管道只部分处理了请求并发和包头堵塞问题,客户端多建立TCP连接,减少延迟 3.报头字段经常重复和冗长,数据包变大,容易造成初始TCP端口的堵塞,多建立几个TCP连接 http2x协议解决之道: 1.优化基础连接的语义映射,例如同一个连接…
在移动互联网领域蓬勃发展的今天,APP的性能也成为各大公司重点关注的方向,该系列文章主要针对iOS的性能的几个方面做一些研究. 什么是HTTP2.0? 网上很容易搜到关于HTTP2.0的概念的文章,这里不再累述. 苹果从iOS9开始支持HTTP2.0,对iOS开发人员来说,即是iOS9开始,NSURLSession可以支持HTTP2.0. 因为苹果已经打算废弃NSURLConnection,所以NSURLConnection不能支持HTTP2.0. UIWebView也不能支持HTTP2.0(当…
TCP/IP.HTTP.HTTPS.HTTP2.0 HTTP,全称超文本传输协议(HTTP,HyperText Transfer Protocol),是一个客户端和服务器端请求和应答的标准(TCP),互联网上应用最为广泛的一种网络协议.客户端是终端用户,服务器端是网站.通过使用Web浏览器.网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求. HTTPS,即加密后的HTTP.HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非…
最近看到腾讯云支持QUIC的文章,突然意识到还没有好好认识HTTP2.QUIC,而要认识HTTP2,就需要从HTTP1.0开始讲起,才能清楚HTTP的发展历程. HTTP1.x HTTP(HyperText Transfer Protocol)超文本传输协议伴随着计算机网络和浏览器的诞生,HTTP1.0也随之而来,处于计算机中的应用层.HTTP是建立在TCP协议之上,所以HTTP协议的瓶颈及其优化技巧都是基于TCP协议本身的特性,如TCP三次握手四次挥手建立连接带来的RTT延迟时间等. HTTP…
HTTP协议以及HTTP2.0/1.1/1.0区别 一.简介 摘自百度百科: 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准.设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法. HTTP属于OSI网络七层协议模型中的"最上层":应用层.由请求和响应构成,是一个标准的客户端服务器模型.HTTP是一个无状态的协议. HTTP默认端口号为80.它也可以承载在TLS和SS…
此文只是方便重看,原文在:http://www.mamicode.com/info-detail-1199706.html 1.1 HTTP应用场景 http诞生之初主要是应用于web端内容获取,那时候内容还不像现在这样丰富,排版也没那么精美,用户交互的场景几乎没有.对于这种简单的获取网页内容的场景,http表现得还算不错.但随着互联网的发展和web2.0的诞生,更多的内容开始被展示(更多的图片文件),排版变得更精美(更多的css),更复杂的交互也被引入(更多的js).用户打开一个网站首页所加载…
原文地址:https://ainyi.com/44 HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少 http协议属于明文传输协议,交互过程以及数据传输都没有进行加密,通信双方也没有进行任何认证,通信过程非常容易遭遇劫持.监听.篡改,严重情况下,会造成恶意的流量劫持等问题,甚至造成个人隐私泄露(比如银行卡卡号和密码泄露)等严重的安全问题 https:是以安全…
109/110 HTTP2.0协议 优势必须使用TLS加密 传输数据量大幅减少 1:以二进制格式传输  2:标头压缩(header做压缩) 多路复用及相关功能 : 消息优先级 (比如样式表先渲染页面那么这个css样式表优先级就高,图片呈现可以慢些就优先级低些) 服务器消息推送 : 并行推送(server-client)主动推消息  首先要编译进SSL  --with-http_ssl_module 和 --with-http_v2_module Nginx如何推送资源 目前必须支持SSL  ht…
一.HTTP的历史 早在 HTTP 建立之初,主要就是为了将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器.也是说对于前端来说,我们所写的HTML页面将要放在我们的 web 服务器上,用户端通过浏览器访问url地址来获取网页的显示内容,但是到了 WEB2.0 以来,我们的页面变得复杂,不仅仅单纯的是一些简单的文字和图片,同时我们的 HTML 页面有了 CSS,Javascript,来丰富我们的页面展示,当 ajax 的出现,我们又多了一种向服务器端获取数据的方法,这些其实都是基…
一.HTTP的历史 早在HTTP建立之初,主要就是为了将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器.也是说对于前端来说,我们所写的HTML页面将要放在我们的web服务器上,用户端通过浏览器访问url地址来获取网页的显示内容,但是到了WEB2.0以来,我们的页面变得复杂,不仅仅单纯的是一些简单的文字和图片,同时我们的HTML页面有了CSS,Javascript,来丰富我们的页面展示,当ajax的出现,我们又多了一种向服务器端获取数据的方法,这些其实都是基于HTTP协议的.  …
前言 RFC2616发布以来,一直是互联网发展的基石.HTTP协议也成为了可以在任何领域使用的核心协议,基于这个协议人们设计和部署了越来越多的应用.HTTP的简单本质是其快速发展的关键,但随着越来越多的应用被部署到WEB上,HTTP的问题慢慢凸显出来.今天,用户和开发者都迫切需要通过THHP1.1达到一种几近实时的响应速度和协议性能,而要满足这个需求,只在原有协议上进行修补是不够的.为了应对这些挑战,HTTP必须继续发展.HTTP工作组已经在2012年宣布要设计和开发HTTP2.0.HTTP2.…
推荐一首歌 - <卡路里>火箭101 杨超越真的只唱了一句! PS: 这章主要讲述了在 HTTP 发展之后的,一些扩展协议和补充,也会在这个章节对这几种协议和补充做一个比较. 1:HTTP 的瓶颈到底在哪里? - 一个连接只可以发送一个请求. - 只可以客户端发送请求.(这个是和WebSocket比较来说的). - 请求/响应 每次发送都是相同的首部,并且首部信息越多,延迟越大. - 虽然可以选择压缩格式,但是并不是强制压缩. - 虽然HTTP1.x支持了keep-alive,来弥补多次创建连…
HTTP是应用层协议,是基于TCP底层协议而来. TCP的机制限定,每建立一个连接需要3次握手,断开连接则需要4次挥手. HTTP协议采用"请求-应答"模式,HTTP1.0下,HTTP1.1非Keep-Alive模式下,每个请求都要新建一个连接,完成之后立即断开连接.如果有新的请求,则要重新创建请求连接(HTTP协议为无连接的协议). 这样不免造成了网络传输数据一定的延迟,1999年推出HTTP1.1,虽然可以通过设置延迟时间,让连接延迟关闭.但仍然有线头阻塞,max-connecti…
1.HTTP 2.0将只用于https://网址,而 http://网址将继续使用HTTP/1. 查看http协议(chrome F12) 2.异步连接多路复用 HTTP2.0 把消息分解为独立帧,交错发送,然后在另一端按照每个包重新组装(有木有像坐地铁的感觉),就实现了一个连接上有多个请求和响应,从而带来了巨大的性能提升: 并行交错的发送请求.发送响应,请求之间.响应之间户不影响 一个连接可以并行发起多个请求和响应 消除不必要的延迟,从而减少页面加载时间 更新2019.1.4 http2.0…
版权声明:本文由史燕飞原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/82 来源:腾云阁https://www.qcloud.com/community RFC2616发布以来,一直是互联网发展的基石.HTTP协议也成为了可以在任何领域使用的核心协议,基于这个协议人们设计和部署了越来越多的应用.HTTP的简单本质是其快速发展的关键,但随着越来越多的应用被部署到WEB上,HTTP的问题慢慢凸显出来.今天,用户和开发者都迫切…
HTTP 1.0 → HTTP 1.1 长连接 HTTP 1.1默认支持长连接,减少了TCP连接次数,节约开销. HTTP 1.0所保持的TCP每次只能处理一个请求,最典型的就是pipline管线化模型,虽然能一次性接收多个请求,但是还是得按顺序一次处理一个请求,这样很容易造成后续请求等待前序请求完成,造成阻塞,也就是我们常说的”线头阻塞”. 总结:HTTP 1.0需要使用keep-alive参数来告知服务器建立长连接,而HTTP 1.1默认支持长连接,减少了TCP连接次数,减少了开销和延迟!!…
Web 协议 HTTP1.0 HTTP1.1 SPDY HTTP2.0 HTTP1.0 VS HTTP1.1 长连接HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而HTTP1.1默认支持长连接. HTTP是基于TCP/IP协议的,创建一个TCP连接是需要经过三次握手的,有一定的开销,如果每次通讯都要重新建立连接的话,对性能有影响.因此最好能维持一个长连接,可以用个长连接来发多个请求. 节约带宽HTTP 1.1支持只发送header信息(不带任何body信息),如…
HTTP1.0 是一种无状态.无连接的应用层协议. HTTP1.0规定浏览器和服务器保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器处理完成后立即断开TCP连接(无连接),服务器不跟踪每个客户端也不记录过去的请求(无状态). 这种无状态性可以借助cookie/session机制来做身份认证和状态记录.而下面两个问题就比较麻烦了. 首先,无连接的特性导致最大的性能缺陷就是无法复用连接.每次发送请求的时候,都需要进行一次TCP的连接,而TCP的连接释放过程又是比较费事的.这种…
 一.http2比http1有了更多新特性 1.使用了多路复用的技术,并发量支持比http1大几个数量级: 2.二进制分帧,改善网络延迟情况,提高传输速率: 3.支持header的数据压缩,数据体积变小传输更快: 4.支持服务器推送(单请求多回应): 二.测试对比 三.总结 由以上测试数据看出,http2.0在并发请求数量多(大于30个/s).网络延迟大(大于30ms)时,才能体现出优势. (这是blog的测试和结论,本人尚未测试) 结合本项目的特点,使用nginx做反向代理,提供给业务客户端和…
一.http状态码 1xx(信息性状态码,接受的请求正在处理) 2xx(成功状态码,请求正常处理完毕)200 OK204 No Content:请求成功但没有资源返回206 Partial Content:范围请求 3xx(重定向状态码,需要进行附加操作以完成请求)301 Moved Permanently:永久性重定向()302 Found:临时性重定向303 See Other:同302,用GET获取资源304 Not Modified: 内容没有改,响应不包含主体部分       (请求头…
初识http2.0 HTTP2.0性能增强的核心:二进制分帧 HTTP 2.0最大的特点: 不会改动HTTP 的语义,HTTP 方法.状态码.URI 及首部字段,等等这些核心概念上一如往常,却能致力于突破上一代标准的性能限制,改进传输性能,实现低延迟和高吞吐量.而之所以叫2.0,是在于新增的二进制分帧层. 既然又要保证HTTP的各种动词,方法,首部都不受影响,那就需要在应用层(HTTP2.0)和传输层(TCP or UDP)之间增加一个二进制分帧层. 在二进制分帧层上,HTTP 2.0 会将所有…