我正在检查此网站使用的http protcol http://www.dlf.in/ Chrome开发者工具将其显示为http / 1.1,如下图所示。
然而,python中的命令行工具is-http2或alpn似乎表明http / 1.1不可用。只有http1可用。这是怎么回事?
我在python中进行ALPN协商如下(openssl版本:OpenSSL 1.0.2h和python版本3.5.1)
import ssl
import socket
port = 443
domain = 'www.dlf.in'
ctx = ssl.create_default_context()
ctx.set_alpn_protocols(['h2', 'spdy/3.1', 'spdy/3', 'spdy/2', 'http/1.1'])
conn = ctx.wrap_socket(socket.socket(socket.AF_INET, socket.SOCK_STREAM),
server_hostname=domain)
conn.connect((domain, port))
print(conn.selected_alpn_protocol())
答案 0 :(得分:0)
该网站上没有HTTPS。浏览器仅支持HTTPS上的HTTP / 2,尽管规范允许它在理论上通过HTTP。
答案 1 :(得分:0)
使用telnet
和HTTPie
发送HTTP请求(1.0和1.1),Web服务器响应:
HTTP / 1.1 200确定
我用2.0试了一下,得到了:
不支持HTTP / 1.1 505 HTTP版本
答案 2 :(得分:0)