Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Proxy 代理中的https和http隧道方法是什么?_Proxy_Http Proxy_Http Tunneling_Https Proxy Agent - Fatal编程技术网

Proxy 代理中的https和http隧道方法是什么?

Proxy 代理中的https和http隧道方法是什么?,proxy,http-proxy,http-tunneling,https-proxy-agent,Proxy,Http Proxy,Http Tunneling,Https Proxy Agent,这张图片是ProxyDroid应用程序,我看到了一些代理软件,像这样的 我为http方法找到了一些免费服务器(http代理是著名的一种),并为socks 4和socks 5找到了服务器,但我找不到任何支持https和http隧道的服务器,换句话说,我无法理解这些协议到底是什么。代理https是使用http代理通过使用CONNECT请求完成的。使用此请求,HTTP代理将被指示创建到目标服务器的隧道。在此隧道内,客户端可以执行HTTPS所需的TLS握手: > CONNECT example.o

这张图片是ProxyDroid应用程序,我看到了一些代理软件,像这样的


我为http方法找到了一些免费服务器(http代理是著名的一种),并为socks 4和socks 5找到了服务器,但我找不到任何支持https和http隧道的服务器,换句话说,我无法理解这些协议到底是什么。

代理https是使用http代理通过使用CONNECT请求完成的。使用此请求,HTTP代理将被指示创建到目标服务器的隧道。在此隧道内,客户端可以执行HTTPS所需的TLS握手:

> CONNECT example.org:443 HTTP/1.0
>

... proxy established TCP connection to example.org:443 ...

< HTTP/1.0 200 Connection established
<

... tunnel to target established
... proxy forwards data between client and target unchanged
<-> TLS handshake
<-> application data protected by TLS
>connectexample.org:443http/1.0
>
... 代理已建立到example.org:443的TCP连接。。。
HTTP隧道与此类似。通常通过发送HTTP代理请求来代理HTTP请求:

> GET http://example.org/index.html HTTP/1.0
> Host: example.org
>

... proxy connects to target example.org and forwards request
... then sends response from target server back

< HTTP/1.0 200 ok
< Content-length: ...
< ...
>获取http://example.org/index.html HTTP/1.0
>主持人:example.org
>
... 代理连接到target example.org并转发请求
... 然后从目标服务器发回响应
使用HTTP隧道,客户端使用上述连接方法创建到目标服务器的隧道并发送请求:

> CONNECT example.org:80 HTTP/1.0
>
< HTTP/1.0 200 Connection established
<

... tunnel established, send HTTP request over tunnel and get reply back

> GET /index.html HTTP/1.0
> Host: example.org
> ...
< HTTP/1.0 200 ok
< ...
>connectexample.org:80http/1.0
>
GET/index.html HTTP/1.0
>主持人:example.org
> ...
代理HTTPS是通过HTTP代理使用CONNECT请求完成的。使用此请求,HTTP代理将被指示创建到目标服务器的隧道。在此隧道内,客户端可以执行HTTPS所需的TLS握手:

> CONNECT example.org:443 HTTP/1.0
>

... proxy established TCP connection to example.org:443 ...

< HTTP/1.0 200 Connection established
<

... tunnel to target established
... proxy forwards data between client and target unchanged
<-> TLS handshake
<-> application data protected by TLS
>connectexample.org:443http/1.0
>
... 代理已建立到example.org:443的TCP连接。。。
HTTP隧道与此类似。通常通过发送HTTP代理请求来代理HTTP请求:

> GET http://example.org/index.html HTTP/1.0
> Host: example.org
>

... proxy connects to target example.org and forwards request
... then sends response from target server back

< HTTP/1.0 200 ok
< Content-length: ...
< ...
>获取http://example.org/index.html HTTP/1.0
>主持人:example.org
>
... 代理连接到target example.org并转发请求
... 然后从目标服务器发回响应
使用HTTP隧道,客户端使用上述连接方法创建到目标服务器的隧道并发送请求:

> CONNECT example.org:80 HTTP/1.0
>
< HTTP/1.0 200 Connection established
<

... tunnel established, send HTTP request over tunnel and get reply back

> GET /index.html HTTP/1.0
> Host: example.org
> ...
< HTTP/1.0 200 ok
< ...
>connectexample.org:80http/1.0
>
GET/index.html HTTP/1.0
>主持人:example.org
> ...
您是否只回答了proxydorid应用程序的问题?在所有代理中都是一样的吗?我在维基百科和其他一些参考文献中读到,有许多方法可以创建HTTP隧道,其中之一就是使用HTTP连接。有没有其他方法来创建HTTP隧道?我看到一个名为tunnel guru的应用程序在使用http tunnel和http post时没有使用http connect。@mark.taylor:connect是完成隧道的正常方式。例如,Skype也会使用此功能。但是,也有其他通过普通HTTP、WebSocket的隧道方式。不过,没有进一步解释的简单“HTTP隧道”几乎总是使用CONNECT创建的隧道。您是否只回答proxydorid应用程序的问题?在所有代理中都是一样的吗?我在维基百科和其他一些参考文献中读到,有许多方法可以创建HTTP隧道,其中之一就是使用HTTP连接。有没有其他方法来创建HTTP隧道?我看到一个名为tunnel guru的应用程序在使用http tunnel和http post时没有使用http connect。@mark.taylor:connect是完成隧道的正常方式。例如,Skype也会使用此功能。但是,也有其他通过普通HTTP、WebSocket的隧道方式。不过,没有进一步解释的简单“HTTP隧道”几乎总是使用CONNECT创建的隧道。