47.HTTP代理(转发代理&反向代理)与重定向

转载请注明原始出处:http://blog.csdn.net/a464057216/article/details/52681639

后续此博客不再更新,欢迎大家搜索关注微信公众号“测开之美”,测试开发工程师技术修炼小站,持续学习持续进步。
在这里插入图片描述

转发代理服务器

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

这里写图片描述

反向代理服务器

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

这里写图片描述

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

重定向

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

这里写图片描述

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

这里写图片描述

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

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

如果觉得我的文章对您有帮助,欢迎关注我(CSDN:Mars Loo的博客)或者为这篇文章点赞,谢谢!

如下几篇文章是我在学习HTTP协议时总结的博文,欢迎参考:

  1. HTTP缓存
  2. HTTP认证(基本认证与摘要认证)
  3. HTTP、HTTPS基本原理
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值