官术网_书友最值得收藏!

Version 2 of HTTP

HTTP/2 is an optimization of HTTP 1.1. Many browsers already support HTTP/2; your Chrome browser does that already.

HTTP/2 is a combination of two specifications: Hypertext Transfer Protocol version 2 (RFC7540) and HPACK- Header Compression for HTTP2 (RFC7541).

When using HTTP/2 over Transport Layer Security (TLS), "h2" is used to indicate the protocol.

The "h2c" string is used when HTTP/2 is used over clear text TCP or when HTTP.1.1 upgrades.

An example of a GET request is as follows:

GET / HTTP/1.1
Host: server.example.com
Connection: Upgrade, HTTP2-Settings
Upgrade: h2c
HTTP2-Settings: <base64url encoding of HTTP/2 SETTINGS payload>

-RCF 7540 Section 3.2

This request is from a client that does not know whether HTTP/2 is supported. It makes a HTTP 1.1 request, but includes an upgrade field in the header, "h2c", and at least one HTTP2-Settings header field:

A server that does not support HTTP/2 will respond as follows:

HTTP/1.1 200 OK
Content-Length: 243
Content-Type: text/html

-RCF 7540 Section 3.2

This looks like a regular HTTP/1.1 response:

A server that does support HTTP/2 will respond as follows:

HTTP/1.1 101 Switching Protocols
Connection: Upgrade
Upgrade: h2c
[ HTTP/2 connection ...

-RCF 7540 Section 3.2

A frame is introduced as basis unit in HTTP2. You can think of a frame as a packet that is transferred over the wire. For requests and responses, the HEADER and DATA frames are used as the building blocks, and for HTTP/2 features, the frames are SETTINGS, WINDOWS_UPDATE, and PUSH_PROMISE.

主站蜘蛛池模板: 台山市| 新津县| 灵璧县| 虹口区| 大姚县| 凌云县| 万载县| 衡山县| 焉耆| 安阳市| 塘沽区| 文化| 南澳县| 闽侯县| 祁连县| 英超| 封开县| 莎车县| 响水县| 宜兴市| 临沂市| 肥城市| 准格尔旗| 七台河市| 广饶县| 北辰区| 乳山市| 富蕴县| 临武县| 凤庆县| 延寿县| 武冈市| 聊城市| 扶余县| 云梦县| 乌兰察布市| 安义县| 银川市| 岳阳市| 巧家县| 垫江县|