HTTP/2 都出来三年半了,还没有一个好用的 Python 客户端库,真是的。
注:HTTP/3 都快出来了,而且改走 UDP...
检查了一下 requests 的一些信息,找到下面三个 issue:
Some servers are moving http2 for better performance. What would it take to have that in the requests library?
Opened by kgk on 14 Jun 2017, 3 comments
2017/06/14 kennethreitz: In the works!
哎,距今又有一年半了,还是没有动静。
The draft specification of HTTP 2.0 is out. As a long-term goal, there should be a way to make requests compatible with it.
Opened by AkshatM on 20 Feb 2015, 1 comment
requests 应该是使用最多的第三方 HTTP 库吧,可能大神私事繁忙,没有足够精力吧。
当然,也有客观原因:
一方面,由于 HTTP/2 的新特性,可能需要一些异步的支持,对之前的同步架构来说,会有很大的调整。这些变动以及可能产生的不兼容都需要反复掂量(与等待,等待技术换代的一个契机)。
另一方面,相比在 requests 这一层来做变更,更好的方案是和 urllib3 协同更新(urllib3 还没有加入 HTTP/2 支持)。
HTTP/2
https://developers.google.com/web/fundamentals/performance/http2/?hl=zh-cn
https://juejin.im/post/5aaf51daf265da239376dfde
变化:
二进制,不再明文传输了
帧(二进制分帧层)
TSL,协议无要求,但已是事实标准了
数据流优先级
连接复用
Header 压缩
服务器推送
curl -vsS 'https://cn.bing.com/' -H 'authority: cn.bing.com' -H 'upgrade-insecure-requests: 1' -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Geck