remove http2http references

This commit is contained in:
Maximilian Hils 2015-08-30 13:40:23 +02:00
parent 3873e08339
commit 421b241ff0
6 changed files with 17 additions and 22 deletions

View File

@ -7,22 +7,17 @@ mitmproxy forwards HTTP proxy requests to an upstream proxy server.
<table class="table"> <table class="table">
<tbody> <tbody>
<tr> <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> </tr>
</tbody> </tbody>
</table> </table>
Here, **schema** is one of http, https, http2https or https2http. The latter Here, **scheme** signifies if the proxy should use TLS to connect to the server.
two extended schema specifications control the use of HTTP and HTTPS on mitmproxy accepts both encrypted and unencrypted requests and transforms them to what the server
mitmproxy and the upstream server. You can indicate that mitmproxy should use expects.
HTTP, and the upstream server uses HTTPS like this:
http2https://hostname:port mitmdump -R https://httpbin.org -p 80
mitmdump -R https://httpbin.org -p 443
And you can indicate that mitmproxy should use HTTPS while the upstream
service uses HTTP like this:
https2http://hostname:port
### Host Header ### Host Header

View File

@ -149,7 +149,7 @@ this:
<h1>Reverse Proxy</h1> <h1>Reverse Proxy</h1>
</div> </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 Internet. Using reverse proxy mode, you can use mitmproxy to act like a normal
HTTP server: HTTP server:
@ -174,14 +174,14 @@ requests recorded in mitmproxy.
- Say you have some toy project that should get SSL support. Simply set up - 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 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 task, but mitmproxy is very quick and simple way to set up an SSL-speaking
server. server.
- Want to add a non-SSL-capable compression proxy in front of your server? You - 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 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. server. As you see, it's a fairly flexible thing.
Note that mitmproxy supports either an HTTP or an HTTPS upstream server, not Note that mitmproxy supports either an HTTP or an HTTPS upstream server, not

View File

@ -1,7 +1,6 @@
from __future__ import (absolute_import, print_function, division) from __future__ import (absolute_import, print_function, division)
from .layer import Layer, ServerConnectionMixin from .layer import Layer, ServerConnectionMixin
from .tls import TlsLayer
class ReverseProxy(Layer, ServerConnectionMixin): class ReverseProxy(Layer, ServerConnectionMixin):

View File

@ -10,6 +10,7 @@ from .layer import ServerConnectionMixin
from .http_proxy import HttpProxy, HttpUpstreamProxy from .http_proxy import HttpProxy, HttpUpstreamProxy
from .reverse_proxy import ReverseProxy from .reverse_proxy import ReverseProxy
class RootContext(object): class RootContext(object):
""" """
The outmost context provided to the root layer. The outmost context provided to the root layer.

View File

@ -51,10 +51,6 @@ def test_parse_server_spec():
"Invalid server specification", "Invalid server specification",
cmdline.parse_server_spec, cmdline.parse_server_spec,
"http://") "http://")
tutils.raises(
"Invalid server specification",
cmdline.parse_server_spec,
"https2http://foo.com")
def test_parse_setheaders(): def test_parse_setheaders():

View File

@ -468,7 +468,7 @@ class TestHttps2Http(tservers.ReverseProxTest):
@classmethod @classmethod
def get_proxy_config(cls): def get_proxy_config(cls):
d = super(TestHttps2Http, cls).get_proxy_config() 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 return d
def pathoc(self, ssl, sni=None): def pathoc(self, ssl, sni=None):
@ -476,7 +476,7 @@ class TestHttps2Http(tservers.ReverseProxTest):
Returns a connected Pathoc instance. Returns a connected Pathoc instance.
""" """
p = pathoc.Pathoc( 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() p.connect()
return p return p
@ -490,6 +490,10 @@ class TestHttps2Http(tservers.ReverseProxTest):
assert p.request("get:'/p/200'").status_code == 200 assert p.request("get:'/p/200'").status_code == 200
assert all("Error in handle_sni" not in msg for msg in self.proxy.log) 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): class TestTransparent(tservers.TransparentProxTest, CommonMixin, TcpMixin):
ssl = False ssl = False