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

  • Mastering ASP.NET Web API
  • Mithun Pattankar Malendra Hurbuns
  • 239字
  • 2021-07-02 20:52:25

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.

主站蜘蛛池模板: 喜德县| 晋州市| 绥芬河市| 双柏县| 罗山县| 赣州市| 页游| 乾安县| 巫溪县| 苏尼特左旗| 乌鲁木齐县| 称多县| 建宁县| 公安县| 炉霍县| 峨眉山市| 马公市| 南投县| 共和县| 克拉玛依市| 永靖县| 潮安县| 突泉县| 哈密市| 湘阴县| 尤溪县| 永清县| 威信县| 缙云县| 洛浦县| 南阳市| 涞源县| 博爱县| 佛学| 潮州市| 定边县| 抚顺市| 鄂托克旗| 普宁市| 莫力| 兰坪|