规约

优质
小牛编辑
126浏览
2023-12-01

HTTP/1.0和HTTP/1.1

RFC7230:HTTP/1.1:消息语法和路由 RFC7231:HTTP/1.1:语义和内容

mitmproxy对HTTP/1.0和HTTP/1.1的支持基于我们的自定义HTTP堆栈,该堆栈负责所有语义和在线解析/序列化任务。

mitmproxy当前不支持解析HTTP预告片-但是,如果您想向我们发送PR,我们承诺一定要看一下!

HTTP/2

RFC7540:超文本传输​​协议版本2(HTTP/2)

mitmproxy中的HTTP/2支持基于 hyper-h2。它完全封装了HTTP/2连接的内部状态,并提供了一个易于使用的基于事件的API。mitmproxy支持大多数HTTP/2功能,并尝试透明地传递尽可能多的信息。

mitmproxy当前不支持HTTP/2明文(h2c),因为主要的浏览器供应商都没有实现它。

一些网站在其Web服务器中仍存在正确的HTTP/2支持问题,并且可能导致错误,连接断开或根本没有响应。我们正在尝试对我们发送和接收的数据类型尽可能地宽容和宽容,但是 一些 错误的 实现 根本不能与mitmproxy一起很好地工作。

为了提高mitmproxy与HTTP/2网络服务器的兼容性,我们默认不转发客户端发送的任何优先级信息。您可以使用启用它http2_priority=true。

WebSocket

RFC6455:WebSocket协议 RFC7692:WebSocket的压缩扩展

mitmproxy中的WebSocket支持基于wsproto项目。它完全封装了WebSocket框架/消息/连接,并提供了易于使用的基于事件的API。

mitmproxy完全支持wsproto提供的WebSocket消息的压缩扩展。触发事件之前,邮件内容会自动压缩和解压缩。

mitmproxy当前在控制台或Web UI中不显示WebSocket消息。仅显示WebSocket握手流,其中包含对通过此连接交换的所有消息的父流的引用。

如果端点将PING发送给mitmproxy,则PONG将立即发送回(如果存在,则具有相同的有效负载)。为了使另一个连接保持活动状态,新的PING(没有有效负载)被发送到另一个端点。未经请求的PONG不会转发。记录所有PING和PONG(如果存在有效载荷,则记录有效载荷)。

请注意,尚无法进行消息拦截,修改或重播。

原始TCP/TCP代理/Fallback

如果mitmproxy无法处理特定协议,则可以免除主机名的处理,以便mitmproxy充当通用TCP转发器。此功能与直通功能密切相关,但是在两个重要方面有所不同:

原始TCP消息将打印到事件日志中。 SSL连接将被拦截。 请注意,尚无法进行消息拦截,修改或重播。如果您对原始TCP消息不感兴趣,则应使用“忽略域”功能。

命令行别名 --tcp HOST mitmproxy快捷方式 按OT