HTTP代理和HTTPS代理的区别

 分类: 致知

一些浏览器在设置代理的时候,有多个选项,包括HTTP代理,HTTPS代理,FTP代理,SOCKS代理等。它们之间有什么区别呢?为了寻找它们之间的区别,我专门做了个实验,用nginx搭建了HTTP和HTTPS代理服务器,并在chrome上设置不同的代理浏览网站。

首先搭建HTTP代理,nginx下使用:

server {
       listen 8080;
       resolver 8.8.8.8;
       location / {
            proxy_pass http://$http_host$request_uri;
        }
   }

然后设置代理,访问HTTP网站,发现IP是代理服务器的IP,使用HTTP代理访问HTTPS网站,发现IP还是本机的IP。也就是说:HTTP代理,只代理HTTP网站,对于HTTPS的网站则不与代理
由于nginx不支持CONNECT方法,所以不能用来搭建HTTPS代理服务器,用apache来替代,搭建HTTPS代理需要的有mod_proxy.so,mod_proxy_connect.so,需要在apache的配置文件中启用相应的模块。然后把ProxyRequests on的注释去掉,重启一下httpd服务器,HTTPS代理服务器即配置成功。用HTTPS代理分别访问HTTP网站和HTTPS网站,发现HTTPS网站用的代理服务器IP,HTTP网站还是本地IP。也就是说:HTTPS代理,只代理HTTPS网站,HTTP网站则走正常的线路

当然在浏览器代理设置中,还有设置“对所有协议均使用相同的代理服务器”,当设置这个的时候,浏览器支持的所有协议,http,https,ftp等都将通过这个代理,前提是服务器支持。

发表回复

评论列表:

techon
techon
现在来说 HTTP代理可以支持SSL,能够代理https网站 HTTPS代理一般也支持http 前者为代理协议,后者是应用协议,不可混同一谈
回复此留言
黄庸
黄庸
楼主很细心,看起来很简单的东西都拿出来研究一下,关键是研究的东西确实都是很值得思考的东西。
回复此留言