代理服务器
# 什么是代理服务器
代理(英语:Proxy)也称网络代理,是一种特殊的网络服务,允许一个终端 (opens new window)(一般为客户端 (opens new window))通过这个服务与另一个终端(一般为服务器 (opens new window))进行非直接的连接。一些网关 (opens new window)、路由器 (opens new window)等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,在一定程度上能够阻止网络攻击 (opens new window)。
提供代理服务的电脑系统或其它类型的网络终端称为代理服务器英语:Proxy Server。一个完整的代理请求过程为:客户端 (opens new window)首先根据代理服务器所使用的代理协议,与代理服务器创建连接,接着按照协议请求对目标服务器创建连接、或者获得目标服务器的指定资源(如:文件)。在后一种情况中,代理服务器可能对目标服务器的资源下载至本地缓存 (opens new window),如果客户端所要获取的资源在代理服务器的缓存之中,则代理服务器并不会向目标服务器发送请求,而是直接传回已缓存的资源。一些代理协议允许代理服务器改变客户端的原始请求、目标服务器的原始响应,以满足代理协议的需要。
代理服务器作为客户端和服务端的中间层,可以帮助服务端做代理从而提供客户端一些服务。
# 代理的分类
# HTTP代理
与nginx反向代理不同,nginx反向代理有网站管理层主动设置,对于用户来说是否使用反向代理是无感知的。而HTTP代理则由用户主动来使用。
使用HTTP代理可以实现如下的功能:
- 无法直接连接到目标服务器,需要通过HTTP代理实现中转。科学上网
- 优化网络,访问某些网站速度较慢,需要使用代理来做优化
- 进行网络冲浪时隐藏自己的真实ip
原理:
HTTP代理应该是所有代理中最简单的一类代理,它的工作原理非常简单,就是用户将原本打算发送给网站服务器的文本原封不动地发送给代理服务器,代理服务器再将这个文本转发给网站服务器并接收网站服务器的返回的数据,再由代理服务器转发给用户。
其实我们使用nginx也可以搭建一个HTTP代理服务器,假设我们在本地搭建一个代理服务器127.0.0.1:8888,并要求访问127.0.0.1:8888的请求转发到www.baidu.com。网站返回的信息先返回到代理服务器,再返回到我们本机。这就相当于我们实现了一个简单的代理服务器。
HTTP代理怎么访问HTTPS协议的网站?