首页
随机
最近更改
特殊页面
社群首页
参数设置
关于WHY42
免责声明
WHY42
搜索
用户菜单
登录
欢迎来到Riguz的小站!这是一个私人wiki,用来记录一些我的笔记。
查看“︁HTTP/2”︁的源代码
←
HTTP/2
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
== HTTP/2 Discovery == ;h2: HTTP/2 over TLS ;h2c: HTTP/2 is run over cleartext TCP == Starting HTTP/2 for "http" URIs== 如果客户端无法事先知道服务端是否支持http2,可以通过HTTP Upgrade mechanism(定义在HTTP/1.1)中来实现,这样在之后的请求中可以采取HTTP/2。 <syntaxhighlight lang="lisp"> GET / HTTP/1.1 Host: server.example.com Connection: Upgrade, HTTP2-Settings Upgrade: h2c HTTP2-Settings: <base64url encoding of HTTP/2 SETTINGS payload> </syntaxhighlight> 这样的话,如果请求中由payload必须一次性发完。然后才能升级到HTTP/2。另一种办法是通过<span class="article-label">OPTIONS</span>请求 来判断,这样做会多一次请求。 如果服务端不支持HTTP/2,返回中则不包含Upgrade header: <syntaxhighlight lang="lisp"> HTTP/1.1 200 OK Content-Length: 243 Content-Type: text/html </syntaxhighlight> 否则,返回一个101 (Switching Protocols)响应: <syntaxhighlight lang="lisp"> HTTP/1.1 101 Switching Protocols Connection: Upgrade Upgrade: h2c [ HTTP/2 connection ... </syntaxhighlight> 在h2c后面的空行之后,就可以开始发送HTTP/2的frame了。 === HTTP2-Settings === [[Category:Network]]
返回
HTTP/2
。