频道栏目
首页 > 资讯 > 网络协议 > 正文

HTTP代理教程:转发代理和反向代理及重定向讲解

18-06-15        来源:[db:作者]  
收藏   我要投稿

转发代理服务器

Forward Proxy:客户端无法直接请求服务器,只能将请求发往转发代理服务器(简称代理服务器),代理服务器将请求转发给服务器,接收到服务器响应后再将响应转发回客户端。适用于客户端从内部网络访问外部网络时,可能由于防火墙的存在无法直接访问外网,这时需要借助转发代理服务器访问外部网络(防火墙可能配置了只允许转发代理服务器与外部通信及一些其他规则)。有时为了加速代理服务器响应,可能会采用缓存技术。整个过程如:

这里写图片描述

反向代理服务器

Reverse Proxy:反向代理服务器用来代理服务器接收客户端请求,对于客户端来说,其感知不到反向代理的存在。考虑到服务器集群的安全,可以将反向代理服务器架设在防火墙外,接收到客户端请求后,反向代理服务器透过防火墙将请求转发到不同的服务器,再将服务器的响应回应给客户端(防火墙可以设置只允许反向代理服务器与真实服务器集群交互)。反向代理服务器也可能采用缓存技术,整个过程如下图(结构与转发代理服务器差不多):

这里写图片描述

在代理转发场景,用户端发送一次请求就可以获得响应,无需关注转发代理服务器或者反向代理服务器做了什么。而在重定向场景,客户端至少要发送两次请求才能得到想要的结果。

重定向

客户端向服务器请求资源A,服务器发现A在其他地方,于是返回301 Move Permanently给客户端,告诉客户端该资源被永久移动到位置B(通过响应头部的Location字段):

这里写图片描述

然后客户端重新请求资源B得到想要的结果:

这里写图片描述

重定向时,如果该资源是被临时移动,服务端可能会返回302 Temporarily Moved,但是302响应可能会被搜索引擎认为是在作弊,所以日常开发最好使用301Move Permanently 。

最后,请求一个资源有可能发生多次重定向行为(请求A,被重定向到B,又被重定向到C,…,最后得到真正的资源)。

相关TAG标签
上一篇:创建第一个flask操作方法
下一篇:Java随机读取本地文件夹下面的所有文件,并通过StringBuffer换行输出
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站