版图是什么意思| cognac是什么酒| 糖耐量受损是什么意思| 月经前一周是什么期| 麦冬不能和什么一起吃| 什么是高危性行为| 麻烦的意思是什么| 脑白质疏松症是什么病| 猴的守护神是什么菩萨| apgar评分是什么意思| 医院量身高为什么会矮| 子卯相刑有什么危害| 农历8月15是什么节日| 什么样的西瓜| 精囊炎吃什么药| 周瑜和诸葛亮是什么关系| 为什么白带多| 吃芒果后不能吃什么| 眼睛干痒滴什么眼药水| 什么的友谊| 皮肤过敏用什么药膏| 人参果是什么季节的| 亲子是什么意思| 为什么会睡不着| 除了胃镜还有什么检查胃的方法吗| 中药饮片是什么| 18度穿什么衣服合适| 孕囊形态欠规则是什么意思| 虾膏是什么| 静脉曲张是什么症状| 相亲第一次见面送什么礼物好| 心脏疼痛吃什么药| 玩微博的都是什么人| 梦见和死去的亲人吵架是什么意思| 恕是什么意思| 彼岸花开是什么意思| 蓝脸的窦尔敦盗御马是什么歌| 亲子是什么意思| 检查肝肾功能挂什么科| 过敏期间不能吃什么东西| 大姨妈吃什么好| 备孕吃什么最容易怀孕| 九月23日是什么星座| 血小板计数偏低是什么意思| 空气净化器有什么作用| 十一月一日是什么星座| 胃气不通什么症状| 散瞳是什么意思| 小辣椒是什么意思| 睡眠好的人说明什么| 膀胱壁增厚是什么原因| 黄墙绿地的作用是什么| 跖疣是什么原因引起的| 秋字五行属什么| 什么地舞动| 五步蛇长什么样| 乘载和核载是什么意思| 肝功七项查的是什么| 牙膏洗脸有什么好处| 耻骨疼是什么原因| 甲辰是什么意思| 什么叫韵母| crs是什么意思| moi是什么意思| a21和以纯什么关系| 高处不胜寒什么意思| 万什么一心| 血沉高是什么病| 浑身疼痛什么原因| 万能血型是什么血型| 兔对冲生肖是什么| 女人银屑病一般都长什么地方| ch是什么| 被螨虫咬了擦什么药膏| 间羟胺又叫什么| 宫腔内高回声是什么意思| 柱镜是什么意思| only是什么品牌| 日落西山是什么生肖| 阑尾炎手术后可以吃什么水果| 腿酸胀是什么原因| 钰字五行属什么| 路冲是什么意思| 为什么喝牛奶会长痘| 身上出现白块什么原因| 苹果越狱是什么意思啊| 青菜是什么菜| 三月29号是什么星座| 儿童便秘吃什么最快排便| 蜂王浆什么味道| 女人跑马是什么意思| 1977年属蛇是什么命| 石斛有什么用| 菠萝什么季节成熟| 鱼子酱是什么| 橘子什么季节成熟| 在什么什么后面| 眼睛近视缺什么维生素| 尿是红色的是什么原因| 血栓吃什么药最好| 引力是什么| 晏字五行属什么的| 老人吃饭老是噎着是什么原因| 空心菜什么人不能吃| 甲胄是什么意思| 两肺纹理增粗是什么意思| 洗衣机什么牌子的好| 抗皱用什么产品好| 江西古代叫什么| 尾椎骨疼痛是什么原因| mlb是什么牌子| 梦到别人结婚是什么意思| 牛筋面是用什么做的| 老年人腿脚无力是什么原因| 抗磷脂综合征是什么病| 减肥最快的方法是什么| 有骨气是什么意思| 产后恶露是什么| 什么是价值| 晨字属于五行属什么| 平仓什么意思| 屈光检查是什么| 下面有异味用什么药| 济公搓的泥丸叫什么| 福星高照是什么生肖| 6.30是什么星座| 挣扎是什么意思| lsd是什么| 体悟是什么意思| 顶针什么意思| 梦见自己生个女孩是什么意思| 做什么能快速赚钱| 枸杞配什么壮阳| 6月16什么星座| 肾结石能吃什么| 胎盘可以治什么病| 樱桃补什么| 乳腺囊实性结节是什么意思| 安宫丸什么时候吃效果是最佳的| 陈皮配什么喝去湿气| qa和qc有什么区别| 亚甲炎是什么病| 倒灌是什么意思| 先兆临产是什么意思| 牛黄是什么东西| 月经量多是什么原因引起的| 肌肉萎缩挂什么科| 什么叫感性的女人| 协调什么意思| 子宫偏大是什么原因| 小孩咳嗽不能吃什么食物| 鱼水之欢是什么意思| 什么原因导致子宫内膜息肉| 嘴酸是什么原因引起| 高考450分能上什么学校| 风情万种的意思是什么| 掩耳盗什么| 做梦数钱是什么意思啊| 鹤顶红是什么| 啮齿是什么意思| 右肩膀和胳膊疼痛是什么原因| 京东白条什么时候还款| 夏令时什么意思| 泡茶用什么杯子最好| 男人阳虚吃什么药最好| 羊球是什么| 114514什么意思| 办理公证需要什么材料| 农历六月六是什么日子| 杰字五行属什么| 什么是临床医学| 薄荷叶有什么功效| 大脑供血不足吃什么药最好| 探望是什么意思| 仙人掌有什么功效| 寒冷性荨麻疹是什么原因引起的| 痔疮是什么原因引起| 男人阴虚吃什么药好| 何其是什么意思| 氯雷他定是什么药| 吃什么润肺| 豫州是现在的什么地方| 嘴巴臭是什么原因| 生化流产是什么原因造成的| 冰心原名叫什么| 胆囊炎的症状是什么| 素鸡是用什么做的| ip是什么意思| 囊肿是什么原因造成的| 300年前是什么朝代| 备孕要注意些什么| 胆小如鼠是什么生肖| 驳是什么动物| eu是什么元素| 伦琴是什么单位| 什么是水马| 波折是什么意思| 知足是什么意思| 途明是什么档次的包| 减肥晚餐适合吃什么| 一直以来是什么意思| 孕妇d2聚体高是什么原因| 又拉又吐吃什么药| 急性胃炎吃什么药好| 开团什么意思| 利尿吃什么药| 普拉提是什么运动| 韭黄炒什么好吃| 一马平川是什么生肖| 为什么叫犹太人| 幽门杆菌吃什么药最好| 哪些动物的尾巴有什么作用| 什么辉煌四字词语| 十二月份的是什么星座| 火乐念什么| 口腔医学专业学什么| 孕妇睡觉流口水是什么原因| 鹌鹑蛋不能和什么一起吃| 吉人自有天相什么意思| strange什么意思| 尿素氮高什么原因| 蛇胆疮是什么引起的| 颈部淋巴结肿大是什么原因| 胃胀胃不消化吃什么药| 胎教什么时候开始最好| 什么样的梦想| 唇炎涂什么药膏| 耳道发炎用什么药| 尿管型偏高是什么原因| 吃什么能补气血| 荷花代表什么生肖| 冷泡茶用什么茶叶| 盲约大结局是什么| 外科看什么病| 血管瘤有什么危害| 护士一般什么学历| 区人大代表是什么级别| 什么时候种玉米| 铁达时手表什么档次| 什么情况下打破伤风| 怀孕出血是什么颜色的| 烊什么意思| 市检察长是什么级别| 脆皮是什么意思| 棕色短裤配什么颜色上衣| 平板是什么| 所言极是是什么意思| 黄鼠狼是什么科| 3月18是什么星座| 每天头疼是什么原因引起的| 骨痂是什么意思| 今天生肖冲什么| 三月是什么季节| 红茶加枸杞有什么功效| 八段锦什么时间练最好| 抽烟有什么危害| 用甲硝唑栓有什么反应| 天公作美是什么生肖| 温碧泉适合什么年龄| 什么是肽| 乳头为什么会内陷| 赤豆是什么豆| 食物中毒吃什么解毒最快| 梅花表属于什么档次| 百度
Professor Sloth

Feature Release

Announcing Unified Web Performance: automatic lab testing, real user monitoring, and Google SEO scores.

HTTP/3 is here, and it’s a big deal for web performance. See just how much faster it makes websites!

Wait, wait, wait, what happened to HTTP/2? Wasn’t that all the rage only a few short years ago? It sure was, but there were some problems. To address them, there’s a new version of the venerable protocol working its way through the standards track.

Ok, but does HTTP/3 actually make things faster? It sure does, and we’ve got the benchmarks to prove it.

A QUIC Preview

Before we get too deep in the details, let’s look at a quick preview of the benchmark results. In the charts below the same browser was used to request the same site, over the same network, varying only the HTTP protocol in-use. Each site was retrieved 20 times and the response time measured via the performance API. (More details on benchmark methodology later)

You can clearly see the performance improvement as each new version of the HTTP protocol is used:

Comparing the three HTTP protocol versions when loading pages from NY.

And the changes become even more pronounced when requesting resources over larger geographic distances and less reliable networks.

But before we can get fully in to all the HTTP/3 benchmark minutiae, a little context is required.

What is HTTP/3?

HTTP/3 is the latest version of the Hypertext Transfer Protocol—the backbone of how the web works. It’s designed to fix some of the performance and reliability issues of previous versions, especially over slow or unreliable networks.

Unlike HTTP/2, which still relies on TCP (a protocol older than most of the internet), HTTP/3 ditches TCP entirely in favor of QUIC, a newer, faster transport protocol built on UDP. QUIC brings built-in encryption, multiplexing without head-of-line blocking, and faster connection establishment.

Speed Matters

Get your free speed check to see your website performance for real users.

Free speed test
Request Metrics Speed Check
Free speed check

Check how fast your website is for the real users that visit.

Check website
Request Metrics Speed Check

A Brief History of HTTP

The first official version of HTTP (Hypertext Transfer Protocol 1.0) was finalized in 1996. There were some practical issues and parts of the standard that needed updating, so HTTP/1.1 was released a year later in 1997. Per the authors:

However, HTTP/1.0 does not sufficiently take into consideration the effects of hierarchical proxies, caching, the need for persistent connections, and virtual hosts. In addition, the proliferation of incompletely-implemented applications calling themselves “HTTP/1.0” has necessitated a protocol version change in order for two communicating applications to determine each other’s true capabilities.

It would be 18 more years before a new version of HTTP was released. In 2015, and with much fanfare, RFC 7540 would standardize HTTP/2 as the next major version of the protocol.

One File at a Time with HTTP/1

If a web page requires 10 javascript files, the web browser needs to retrieve those 10 files before the page can finish loading. In HTTP/1.1-land, the web browser can only download a single file at a time over a TCP connection with the server. This means the files are downloaded sequentially, and any delay in one file would block everything else behind it. This is called Head-of-line Blocking and it’s not good for performance.

To work around this, browsers can open multiple TCP connections to the server to parallelize the data retrieval. But this approach is resource intensive. Each new TCP connection requires client and server resources, and when you add TLS in the mix there’s plenty of SSL negotiation happening too. A better way was needed.

Multiplexing with HTTP/2

HTTP/2’s big selling point was multiplexing. It fixed application level head-of-line blocking issues by switching to a binary over-the-wire format that allowed multiplexed file downloads. That is, a client could request all 10 files at once and start downloading them all in parallel over a single TCP connection.

Unfortunately HTTP/2 still suffers from a head-of-line blocking issue, just one layer lower. TCP itself becomes the weak link in the chain. Any data stream that loses a packet must wait until that packet is retransmitted to continue.

However, because the parallel nature of HTTP/2’s multiplexing is not visible to TCP’s loss recovery mechanisms, a lost or reordered packet causes all active transactions to experience a stall regardless of whether that transaction was directly impacted by the lost packet.

In fact, in high packet loss environments, HTTP/1.1 performs better because of the multiple parallel TCP connections the browser opens!

True Multiplexing with HTTP/3 and QUIC

Enter HTTP/3. The major difference between HTTP/2 and HTTP/3 is which transport protocol they use. Instead of TCP, HTTP/3 uses a new protocol called QUIC. QUIC is a general purpose transport protocol meant to address the head-of-line blocking issues HTTP/2 has with TCP. It allows you to create a series of stateful streams(similar to TCP) over UDP.

I have a UDP Joke... but you might not get it.

The QUIC transport protocol incorporates stream multiplexing and per-stream flow control, similar to that provided by the HTTP/2 framing layer. By providing reliability at the stream level and congestion control across the entire connection, QUIC has the capability to improve the performance of HTTP compared to a TCP mapping

And improve the performance of HTTP it does! Jump to the results if you don’t care about how the test was conducted

Benchmarking HTTP/3

To see just what sort of performance difference HTTP/3 makes, a benchmarking test setup was needed.

The HTML

In order to more closely approximate actual usage, the test setup consisted of three scenarios - a small site, a content-heavy site (lots of images and some JS), and a single page application (heavy on the JS). I looked at several real-world sites and averaged the number of images and JS files for each, then coded up some demo sites that matched those resource counts (and sizes).

  • Small Site
  • 10 JS files from 2kb to 100kb
  • 10 images from 1kb to 50kb
  • Total payload size 600kb, 20 blocking resources total
  • Content Site
  • 50 JS files from 2kb to 1mb
  • 55 images ranging in size from 1kb to 1mb.
  • Total payload size 10MB, 105 resources total (look at cnn.com sometime in dev tools and you’ll see why this is so big)
  • Single Page Application
  • 85 JS files from 2kb to 1mb
  • 30 images ranging in size from 1kb to 50kb.
  • Total payload size 15MB, 115 resources total (look at JIRA sometime in dev tools)

The Server

Caddy was used to serve all assets and HTML.

  • All responses were served with Cache-Control: "no-store" to ensure the browser would re-download every time.
  • TLS 1.2 was used for HTTP/1.1 and HTTP/2
  • TLS 1.3 was used for HTTP/3.
  • 0-RTT was enabled for all HTTP/3 connections

The Locations

The tests were conducted from my computer in Minnesota, to three separate datacenters hosted by Digital Ocean:

  • New York, USA
  • London, England
  • Bangalore, India

The Client

I automated the browser to request the same page 20 times in a row, waiting 3 seconds after page load to begin the next request. The internet connection is rated at 200mbps. No other applications were running on the computer at the time of data capture.

HTTP/3 vs HTTP/2 vs HTTP/1 Performance

New York, USA

Here’s the response times of HTTP/2 vs. HTTP/3 when requesting the three different sites from the NY datacenter:

Comparing HTTP/2 and HTTP/3 protocol versions when loading pages from NY.

HTTP/3 is:

  • 200ms faster for the Small Site
  • 325ms faster for the Content Site
  • 300ms faster for the Single Page Application

The distance from Minnesota to New York is 1,000 miles, which is pretty small by networking standards. It’s significant that even at a relatively short distance HTTP/3 was able to improve performance this much.

London, England

I’ve included the HTTP/1.1 benchmarking run for London in the results as well. In order to show just how much faster HTTP/2 and HTTP/3 are, I’ve kept the graphs to the same scale. You can see that for the Content Site, the timings are so slow that they don’t even fit entirely on the graph!

Comparing the three HTTP protocol versions when loading pages from London.

As you can see, the speed increase is even more pronounced when greater distances over the network are in play. HTTP/3 is:

  • 600ms faster for the Small Site (3x the speedup compared with New York)
  • 1200ms faster for the Content Site (over 3.5x the speedup compared with New York)
  • 1000ms faster for the Single Page Application (over 3x the speedup compared with New York)

Bangalore, India

The performance improvement with HTTP/3 is extremely pronounced when loading pages from the server in India. I didn’t even run an HTTP/1.1 test because it was so slow. Here are the results of HTTP/2 vs. HTTP/3:

Comparing the three HTTP protocol versions when loading pages from India.

HTTP/3 continues to pull ahead when larger geographies and more network hops are involved. What’s perhaps more striking is just how tightly grouped the response times are for HTTP/3. QUIC is having a big impact when packets are traveling thousands of miles.

In every case HTTP/3 was faster than its predecessor!

The Benefits of HTTP/3

Real Multiplexing with QUIC

The true multiplexed nature of HTTP/3 means that there is no Head-of-line blocking happening anywhere on the stack. When requesting resources from further away, geographically, there is a much higher chance of packet loss and the need for TCP to re-transmit those packets.

0-RTT Is a Game Changer

Additionally, HTTP/3 supports O-RTT QUIC connections, which lowers the number of round trips required to establish a secure TLS connection with the server.

The 0-RTT feature in QUIC allows a client to send application data before the handshake is complete. This is made possible by reusing negotiated parameters from a previous connection. To enable this, 0-RTT depends on the client remembering critical parameters and providing the server with a TLS session ticket that allows the server to recover the same information.

However, 0-RTT should not be blindly enabled. There are some possible security concerns depending on your threat model.

The security properties for 0-RTT data are weaker than those for other kinds of TLS data. Specifically:

  1. This data is not forward secret, as it is encrypted solely under keys derived using the offered PSK.
  2. There are no guarantees of non-replay between connections.

Can I Use HTTP/3 Today?

Maybe! While the protocol is currently in Proposed Standard status, there are plenty of existing implementations.

I specifically chose Caddy for these benchmarks because HTTP/3 can be enabled with a simple config value in the Caddyfile

NGINX started support for HTTP/3 and QUIC in 1.25.0.

The big tech players like Google and Facebook are serving their traffic over HTTP/3 already. Google.com is entirely served over HTTP/3 for modern browsers.

For those folks stuck in the Windows ecosystem, supposedly Windows Server 2022 will support HTTP/3, with some rather esoteric steps required to enable it.

Conclusion

HTTP/3 can make a big difference in how users experience your site. In general, the more resources your site requires, the bigger the performance improvement you’ll see with HTTP/3 and QUIC. As the standard continues to inch closer to finalization, it may be time to start looking at enabling it for your sites.

上什么环最好最安全伤害小 天上的星星是什么 什么东西养胃 女人梦见火是什么预兆 什么叫原研药
述求是什么意思 湿疹是什么样的图片 肝功高是什么原因引起的 泽泻是什么 井盖为什么是圆的
白条是什么 可见原始心管搏动是什么意思 发烧后头疼是什么原因 wb是什么意思 中央处理器由什么组成
掌门人是什么意思 先天愚型是什么病 嘴唇边缘发黑是什么原因 混圈是什么意思 拉肚子发热是什么情况
肌酐高有什么症状hcv9jop0ns1r.cn 火腿是什么动物的腿baiqunet.com 急性肠胃炎吃什么消炎药hcv8jop6ns5r.cn s925银是什么意思hcv9jop5ns8r.cn 矿物质是什么hcv9jop0ns7r.cn
什么除草剂三年不长草hcv8jop2ns7r.cn 宝宝干咳吃什么药cj623037.com 细菌性结膜炎用什么药mmeoe.com 流产药叫什么名字imcecn.com 什么手机信号最好最强hcv9jop4ns3r.cn
护理假是什么意思hcv8jop7ns7r.cn 正常舌头是什么颜色hcv9jop0ns4r.cn 什么腔什么调hcv8jop2ns0r.cn 不典型增生是什么意思hcv8jop1ns2r.cn sga是什么意思hcv9jop1ns7r.cn
脑梗是什么原因hcv9jop8ns2r.cn 生物制剂是什么aiwuzhiyu.com 剑桥英语和新概念英语有什么区别hcv8jop3ns2r.cn 什么容易误诊为水痘hcv8jop7ns8r.cn 去医院看舌头挂什么科hcv9jop3ns7r.cn
百度