Python脚本来测试网站是否支持HTTP/2
Python 是快速且以其性能和功能而著名。
在工作中,我尝试了许多选项并发现Python是最快、最准确和最轻量级的。如果您正在开发内部工具以测试网站是否支持HTTP/2,可以使用以下代码。
它适用于Python 3.x。
import socket
import ssl
import csv
import argparse
from urllib.parse import urlparse
socket.setdefaulttimeout(5)
headers = {"user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"}
def check_http2(domain_name):
try:
HOST = urlparse(domain_name).netloc
PORT = 443
ctx = ssl.create_default_context()
ctx.set_alpn_protocols(['h2', 'spdy/3', 'http/1.1'])
conn = ctx.wrap_socket(
socket.socket(socket.AF_INET, socket.SOCK_STREAM), server_hostname=HOST)
conn.connect((HOST, PORT))
pp = conn.selected_alpn_protocol()
if pp == "h2":
return {"http2": True}
else:
return {"http2": False}
except Exception as e:
print(e)
parser = argparse.ArgumentParser()
parser.add_argument("domain", help="display a square of a given number",
type=str)
args = parser.parse_args()
print(check_http2(args.domain))
要运行该程序,您可以使用以下语法。
python3 $SCRIPT.py $URL
示例
root@gf-lab:~# python3 http2.py https://siterelic.com
{'http2': True}
root@gf-lab:~#
您可以看到这几行代码的实现方式。如果您想精通Python,请查看此 Udemy course。此外,要利用H2协议的优势,请参考以下实施指南。