代理(英语:Proxy)也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。
提供代理服务的电脑系统或其它类型的网络终端称为代理服务器(英文:Proxy Server)。一个完整的代理请求过程为:客户端首先与代理服务器创建连接,接着根据代理服务器所使用的代理协议,请求对目标服务器创建连接、或者获得目标服务器的指定资源(如:文件)。在后一种情况中,代理服务器可能对目标服务器的资源下载至本地缓存,如果客户端所要获取的资源在代理服务器的缓存之中,则代理服务器并不会向目标服务器发送请求,而是直接传回已缓存的资源。一些代理协议允许代理服务器改变客户端的原始请求、目标服务器的原始响应,以满足代理协议的需要。代理服务器的选项和设置在计算机程序中,通常包括一个“防火墙”,允许用户输入代理地址,它会遮盖他们的网络活动,可以允许绕过互联网过滤实现网络访问。
代理服务器的基本行为就是接收客户端发送的请求后转发给其他服务器。代理不改变请求URI,会直接发送给前方持有资源的目标服务器。
持有资源实体的服务器被称为源服务器。从源服务器返回的响应经过代理服务器后再传给客户端。
它的内容过滤功能有利于防止骇客破坏电脑,保护电脑安全。
它的匿名功能可以帮助你隐藏真实IP,以免被骇客盯上。
它的匿名功能可以帮助骇客隐藏自己的真实IP,进行破坏,这样就加大了警方的取证难度。(较常见的做法是只挂一个代理,但是安全性更高的做法是用好几台代理服务器串成“代理链”,或者入侵完成后将代理服务器的日志、缓存擦除掉。)还有一些恶意用户常常挂了代理之后随意留言,所以一些网站在用户使用代理的时候可能会直接给你“禁言”。
它的中转功能在使用时,所有发往服务器的数据都基本全部明文,一个前文提到过的“间谍代理”就有可能记录下所有经过的数据(包括用户名密码),所以如果可能的话,需要通过代理传输用户名密码时尽量使用SSL、TLS等协议先行加密,这样不安全的服务器也无法读取了。
反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器(如Web服务器)的工作量。安装反向代理服务器有几个原因:
维基百科使用开放源代码的Varnish代理服务器。
利用私立的域名解释系统,让相应的代理服务器客户端自动以安全链接连接上相应的多台代理服务器服务端,从而实现相应的代理功能。或通过特定的分布式网络,将客户端与相应的出口端创建成虚拟的路由网络,让不同的数据包通过该网络的不同节点和不同出口与外界链接。
此类软件较为著名的有Tor,自由门,无界浏览等。