我读到http / 3使用UDP而不是TCP来发送请求,因此使它更快,而且我确实需要http / 3的速度,那么该怎么做才能在python中实现呢?我根据对协议的了解编写了以下代码:
这是一个超文本协议,您使用UDP而不是TCP,将数据包中的http / 1.1更改为http / 3,然后发送它。
而且我认为我错了。
这是我写的代码:
import socket
from OpenSSL import SSL # for DTLS
connection = 'close' # or keep-alive
protocol = 'HTTP/3' # or HTTP/1.1
packet = f'GET / {protocol}\r\nHost: i.instagram.com\r\nConnection: {connection}\r\n\r\n'
def callback(conn, cert, errnum, depth, ok): cert.get_subject(); return ok
# Initialize context
ctx = SSL.Context(SSL.TLSv1_2_METHOD)
ctx.set_verify(SSL.VERIFY_PEER, callback) # Demand a certificate
# Set up client
client = SSL.Connection(ctx, socket.socket(socket.AF_INET, socket.SOCK_DGRAM))
addr = ('i.instagram.com', 443) #using DTLS
client.connect(addr)
buffer = packet.encode()
client.sendall(buffer) # it stuck here
print(sock.recv(4096))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句