IP地址可以认为是用来确定和哪台主机进行通信,而端口号则是用来确定和主机上的哪个进程进行通信
举个例子,一台主机想要访问某个网址,该主机不会直接向对应的服务器请求该网址,而是通过一个中间服务器,主机告诉中间服务器我想要哪个网址的内容,中间服务器代替主机去请求该网址,中间服务器得到响应后将该响应发送给主机。这里的中间服务器就是代理服务器(Proxy Server)
典型地,翻墙软件的基本工作原理就基于此
由于设置了代理服务器为 ,因此每次浏览器请求Web页面的时候,都会先和代理服务器进行通信,告诉代理服务器主机要请求的URL。
具体的来说,浏览器会先尝试和代理服务器建立TCP连接,连接建立成功后,浏览器会将HTTP请求发送给代理服务器,代理服务器收到请求后便向对应的Web服务器发送请求来获取页面。
由于设置了端口号为,因此浏览器会尝试和该代理服务器上运行在端口10086的进程建立TCP连接,而之所以会出现 ,一个可能的原因就是代理服务器上没有运行在端口10086上的进程,因此浏览器无法和代理服务器建立TCP连接,从而出现的错误。
ShadowsocksR这种软件的工作原理也是类似这样,首先它会建立一个socket套接字,然后绑定主机的IP地址以及一个端口号,绑定成功后,它更改主机的代理服务器设置,比如说设置代理服务器IP地址为,即主机本身,设置端口号为它绑定的端口号。
这样一来,浏览器请求Web页面的时候,先和ShadowsocksR进程建立TCP连接,建立成功后,将HTTP请求发送给ShadowsocksR进程,然后ShadowsocksR进程会和其记录的真正的代理服务器来通信,让真正的代理服务器去请求对应的Web页面
下面为一个代理服务器的Python代码,该服务器在接收到浏览器的HTTP请求后,仅仅只是将该HTTP请求的内容打印出来
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://www.glev.cn/tnews/1081.html