HTTP/2: The Long-Awaited Sequel

Thursday, October 9, 2014 2:01 AM

Ready to speed things up?

Here at Microsoft, we’re rolling out support in Internet Explorer for the first significant rework of the Hypertext Transfer Protocol since 1999. It’s been a while, so it’s due.

While there have been lot of efforts to streamline Web architecture over the years, none have been on the scale of HTTP/2. We’ve been working hard to help develop this new, efficient and compatible standard as part of the IETF HTTPbis Working Group. It’s called, for obvious reasons, HTTP/2 – and it’s available now, built into the new Internet Explorer starting with the Windows 10 Technical Preview.

You can see an overview of the work we have been doing with the HTTPbis working group by checking out the Microsoft Open Technologies HTTP/2 page.

Why is Internet Explorer leading with HTTP/2 implementation?

Performance matters in an increasingly real-time and mobile world – even gains that may seem merely incremental make a difference. For instance a Bing study found that a 10ms increase in page load time costs the site $250K in revenue annually; a 100ms increase – that’s a third the speed of the blink of the human eye, mind you – undid three months of work that went into improving user engagement via better search results relevance. That 100ms delay in the responsiveness of a transactional web page has been shown to cost big online retailers up to 1% of sales due to search abandonment. So what this working group is doing has real economic impact.

What is wrong with what we had yesterday?

For the most part, the way a Web page gets loaded today happens pretty much the same way it did in the days of 800x600-pixel displays. Certainly the web is a faster place today, but it could be much faster and much more resource efficient.

Building a page today still requires a lot of individual queries between the browser and the server, and each individual call has to wait until the server responds before sending the next. Sure, you can open more independent, parallel connections, but this still limits how many items can be requested simultaneously. It also dictates the order of the responses and prevents the server from optimizing responses.

So how is HTTP/2 different?

HTTP/2 delivers the Web page elements quicker and more efficiently, taking advantage of all the available bandwidth. With long-lived connections and multiplexing (the protocol’s ability to combine multiple requests on one connection), more web page items arrive sooner. Experimental HTTP/2 features such as server push and request dependencies could further improve web performance in the future.

What does this mean for developers?

HTTP/2 was designed from the beginning to be backwards-compatible with HTTP/1.1. That means developers of HTTP libraries don't have to change APIs, and the developers who use those libraries won't have to change their application code. This is a huge advantage: developers can move forward without spending months bringing previous efforts up to date.

What about networks? And security?

Fewer and less frequent connections also means that HTTP/2 will put less pressure on the network – and when you consider the scale of the web today, that could significantly increase the efficiency of networks, particularly mobile ones. Given HTTP/2’s efficient connection model, the performance impact of adding TLS to a site will be lessened, opening up the opportunity for more administrators to add TLS to their sites.

When can I get it?

HTTP/2 support is in IE on the Windows 10 Technical Preview. The work on HTTP/2 for IE really began in Windows and Windows Phone 8.1 when we added the experimental SPDY 3.0 protocol. This gave us a chance to gain some experience with a multiplexing HTTP protocol and helped move us towards HTTP/2 and what will now be an industry standard.

SPDY was a good starting point for the HTTP/2 standard, but it is an experimental protocol that does not lend itself to long-term adoption. With the development of HTTP/2, we will remove support for SPDY in all future versions of IE. Web sites and applications currently using SPDY should be able to migrate to HTTP/2 with little or no changes.

How should developers and site owners prepare for the change?

The Technical Preview has HTTP/2 server support also. This means you can create sites in IIS and test your content end to end. Note: in the Technical Preview versions of both IE and IIS, non-secure connections (i.e. HTTP) are not supported on HTTP/2; only secure connections (i.e. HTTPS) are supported on HTTP/2.

Check out our HTTP/2 implementation and put it through its paces! Let us know if you have feedback via @IEDevChat or Connect.

— Rob Trace, Senior Program Manager

— David Walp, Senior Program Manager

转 HTTP/2: The Long-Awaited Sequel的更多相关文章

  1. sequel 连接不上,命令行能连上

    Sequel pro won't connect anymore I'm running into some trouble right now. I worked yesterday on my d ...

  2. Sequel Pro 免费的MySQL管理客戶端(有SSH部分)

    官方站點:http://www.sequelpro.com Sequel Pro 的原名是 CocoaMySQL,是一个与 phpMyAdmin 類似的 MySQL 管理工具.它是由 Cocoa 和面 ...

  3. 解决Mac下Sequel Pro 1.1 连接 Homebrew安装Mysql5.7.8的问题 Sequel Pro 1.1 encountered an unexpected error

    解决Mac下Sequel Pro 1.1 连接 Homebrew安装Mysql5.7.8的问题 Sequel Pro encountered an unexpected error Sequel Pr ...

  4. mysql5.6升级到5.7后Sequel Pro无法连接解决

    因为装ntop,brew自动升级了本地的Mysql,结果升级完成之后,使用Sequel Pro连接总是报错,使用mysql 命令行工具就没有问题. OSX版本 10.11.5 Mysql版本 5.6 ...

  5. Sequel自动生成Select语句

    Sequel 是 Mac 上的一款不错的 mysql 可视化编辑, 它有一个非常好的功能是可以定制自己的插件, 这就是Bundles. 利用这个功能可以写出自己常用的一些sql. 查询语句是最常用的, ...

  6. 使用Mac下的sequel Pro链接数据库时提示错误(已解决)

    使用Mac下的sequel Pro链接数据库时,出现如下问题: ? 1 MySQL said: Authentication plugin 'caching_sha2_password' cannot ...

  7. Mac 装Sequel pro 连接 Mysql 8.0 失败、登录不了、loading问题

    最近都没更新博客,零零散散的笔记也都没整理,so 觉得还是不放上来了. 高兴的是入手了期待好久的水果机,开始了各种捣鼓,好想大撸一下代码啊.... 回到正轨,刚装了mysql8.0, 想装下mysql ...

  8. Sequel Pro for Mac(MySQL 数据库管理工具)破解版安装

    1.软件简介    Sequel Pro 是一款管理 Mysql 的工具,界面简洁易用. 2.功能特色 FULL MYSQL SUPPORT Sequel Pro is a fast, easy-to ...

  9. MySQL可以通过phpmyadmin连接,但是无法通过SqlYog(Windows)或Sequel Pro(Mac)下进行远程连接

    更改数据库密码: update user set password=passworD("sunjingyu0509!") where user='root'; flush priv ...

  10. Sequel简介

    Sequel: Ruby数据库工具包 简介 Sequel是Ruby中用于访问SQL数据库的一个简单.灵活.强大的工具包. Sequel能够保证线程安全,提供了连接池功能以及简洁的SDL用于创建SQL查 ...

随机推荐

  1. Refactoring #002 Inline Method

    Example private ServerSocket createServerSocket(final int port) throws IOException { ServerSocket re ...

  2. 框架-springmvc源码分析(二)

    框架-springmvc源码分析(二) 参考: http://www.cnblogs.com/leftthen/p/5207787.html http://www.cnblogs.com/leftth ...

  3. P4 PI库安装

    repo:Github PI P4Runtime - a control plane framework and tools for the P4 programming language 这个是P4 ...

  4. 原生DOM操作vs框架虚拟DOM比较

    1. 原生 DOM 操作 vs. 通过框架封装操作. 这是一个性能 vs. 可维护性的取舍.框架的意义在于为你掩盖底层的 DOM 操作,让你用更声明式的方式来描述你的目的,从而让你的代码更容易维护.没 ...

  5. MongoDB 默认写入关注保存数据丢失问题与源码简单分析

    MongoDB 默认写入关注可能保存数据丢失问题分析 问题描述: EDI服务进行优化,将原有MQ发送成功并且DB写入成功,两个条件都达成,响应接收订单数据成功,修改为只有有一个条件成功就响应接收数据成 ...

  6. HDU 3488 Tour(最小费用流:有向环最小权值覆盖)

    http://acm.hdu.edu.cn/showproblem.php?pid=3488 题意: 给出n个点和m条边,每条边有距离,把这n个点分成1个或多个环,且每个点只能在一个环中,保证有解. ...

  7. package 'yaml-cpp' not found

    -- Using these message generators: gencpp;genlisp;genpy -- checking for module 'yaml-cpp' -- package ...

  8. Command(命令)

    意图: 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化:对请求排队或记录请求日志,以及支持可撤消的操作. 适用性: 抽象出待执行的动作以参数化某对象,你可用过程语言中的回调(call ...

  9. 【Python】远离 Python 最差实践,避免挖坑

    原文链接:http://blog.guoyb.com/2016/12/03/bad-py-style/ 最近在看一些陈年老系统,其中有一些不好的代码习惯遗留下来的坑:加上最近自己也写了一段烂代码导致服 ...

  10. sqlserver存储过程分页

    create  procedure [dbo].[SqlPager]@sqlstr nvarchar(4000), --查询字符串@currentpage int, --第N页@pagesize in ...