gpt4 book ai didi

python - 如何在 python 中通过 udp (DTLS) 套接字实现 http/3 协议(protocol)?

转载 作者:行者123 更新时间:2023-12-03 11:58:43 27 4
gpt4 key购买 nike

我读到 http/3 使用 UDP 而不是 TCP 来发送请求,所以它更快,而且我真的需要 http/3 的速度,那么我该怎么办,在 python 中实现它呢?
我根据对协议(protocol)的理解编写了这段代码:
这是一个超文本协议(protocol),您使用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))

最佳答案

一个人肯定可以在 Python 中实现 HTTP/3。已经完成:查看aioquic .
另外,请看最新集QUICHTTP/3互联网草稿。您天真的实现是基于错误的假设。

关于python - 如何在 python 中通过 udp (DTLS) 套接字实现 http/3 协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63867214/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com