mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-23 00:01:36 +00:00
remove http2http references
This commit is contained in:
parent
3873e08339
commit
421b241ff0
@ -7,22 +7,17 @@ mitmproxy forwards HTTP proxy requests to an upstream proxy server.
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th width="20%">command-line</th> <td>-R <i>schema</i>://hostname[:port]</td>
|
||||
<th width="20%">command-line</th> <td>-R <i>scheme</i>://hostname[:port]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
Here, **schema** is one of http, https, http2https or https2http. The latter
|
||||
two extended schema specifications control the use of HTTP and HTTPS on
|
||||
mitmproxy and the upstream server. You can indicate that mitmproxy should use
|
||||
HTTP, and the upstream server uses HTTPS like this:
|
||||
Here, **scheme** signifies if the proxy should use TLS to connect to the server.
|
||||
mitmproxy accepts both encrypted and unencrypted requests and transforms them to what the server
|
||||
expects.
|
||||
|
||||
http2https://hostname:port
|
||||
|
||||
And you can indicate that mitmproxy should use HTTPS while the upstream
|
||||
service uses HTTP like this:
|
||||
|
||||
https2http://hostname:port
|
||||
mitmdump -R https://httpbin.org -p 80
|
||||
mitmdump -R https://httpbin.org -p 443
|
||||
|
||||
|
||||
### Host Header
|
||||
|
@ -149,7 +149,7 @@ this:
|
||||
<h1>Reverse Proxy</h1>
|
||||
</div>
|
||||
|
||||
Mitmproxy is usually used with a client that uses the proxy to access the
|
||||
mitmproxy is usually used with a client that uses the proxy to access the
|
||||
Internet. Using reverse proxy mode, you can use mitmproxy to act like a normal
|
||||
HTTP server:
|
||||
|
||||
@ -174,14 +174,14 @@ requests recorded in mitmproxy.
|
||||
|
||||
- Say you have some toy project that should get SSL support. Simply set up
|
||||
mitmproxy with SSL termination and you're done (<code>mitmdump -p 443 -R
|
||||
https2http://localhost:80/</code>). There are better tools for this specific
|
||||
http://localhost:80/</code>). There are better tools for this specific
|
||||
task, but mitmproxy is very quick and simple way to set up an SSL-speaking
|
||||
server.
|
||||
|
||||
- Want to add a non-SSL-capable compression proxy in front of your server? You
|
||||
could even spawn a mitmproxy instance that terminates SSL (https2http://...),
|
||||
could even spawn a mitmproxy instance that terminates SSL (-R http://...),
|
||||
point it to the compression proxy and let the compression proxy point to a
|
||||
SSL-initiating mitmproxy (http2https://...), which then points to the real
|
||||
SSL-initiating mitmproxy (-R https://...), which then points to the real
|
||||
server. As you see, it's a fairly flexible thing.
|
||||
|
||||
Note that mitmproxy supports either an HTTP or an HTTPS upstream server, not
|
||||
|
@ -1,7 +1,6 @@
|
||||
from __future__ import (absolute_import, print_function, division)
|
||||
|
||||
from .layer import Layer, ServerConnectionMixin
|
||||
from .tls import TlsLayer
|
||||
|
||||
|
||||
class ReverseProxy(Layer, ServerConnectionMixin):
|
||||
|
@ -10,6 +10,7 @@ from .layer import ServerConnectionMixin
|
||||
from .http_proxy import HttpProxy, HttpUpstreamProxy
|
||||
from .reverse_proxy import ReverseProxy
|
||||
|
||||
|
||||
class RootContext(object):
|
||||
"""
|
||||
The outmost context provided to the root layer.
|
||||
|
@ -51,10 +51,6 @@ def test_parse_server_spec():
|
||||
"Invalid server specification",
|
||||
cmdline.parse_server_spec,
|
||||
"http://")
|
||||
tutils.raises(
|
||||
"Invalid server specification",
|
||||
cmdline.parse_server_spec,
|
||||
"https2http://foo.com")
|
||||
|
||||
|
||||
def test_parse_setheaders():
|
||||
|
@ -468,7 +468,7 @@ class TestHttps2Http(tservers.ReverseProxTest):
|
||||
@classmethod
|
||||
def get_proxy_config(cls):
|
||||
d = super(TestHttps2Http, cls).get_proxy_config()
|
||||
d["upstream_server"] = ("https2http", d["upstream_server"][1])
|
||||
d["upstream_server"] = ("http", d["upstream_server"][1])
|
||||
return d
|
||||
|
||||
def pathoc(self, ssl, sni=None):
|
||||
@ -476,7 +476,7 @@ class TestHttps2Http(tservers.ReverseProxTest):
|
||||
Returns a connected Pathoc instance.
|
||||
"""
|
||||
p = pathoc.Pathoc(
|
||||
("localhost", self.proxy.port), ssl=ssl, sni=sni, fp=None
|
||||
("localhost", self.proxy.port), ssl=True, sni=sni, fp=None
|
||||
)
|
||||
p.connect()
|
||||
return p
|
||||
@ -490,6 +490,10 @@ class TestHttps2Http(tservers.ReverseProxTest):
|
||||
assert p.request("get:'/p/200'").status_code == 200
|
||||
assert all("Error in handle_sni" not in msg for msg in self.proxy.log)
|
||||
|
||||
def test_http(self):
|
||||
p = self.pathoc(ssl=False)
|
||||
assert p.request("get:'/p/200'").status_code == 200
|
||||
|
||||
|
||||
class TestTransparent(tservers.TransparentProxTest, CommonMixin, TcpMixin):
|
||||
ssl = False
|
||||
|
Loading…
Reference in New Issue
Block a user