文章目录

  • Java高级 正向代理和反向代理理解(小白必看 最好懂的教程)
    • 1)概要
    • 2)什么是代理
      • 1.介绍代理
      • 2.C-S架构
    • 3)区分正向代理和反向代理
    • 4)正向代理怎么理解
      • 1.生活场景
      • 2.互联网场景
    • 5)反向代理怎么理解
      • 1.生活场景
      • 2.互联网场景
    • 6)总结

Java高级 正向代理和反向代理理解(小白必看 最好懂的教程)

本文转自个人Hexo博客:https://liulei-root.github.io/2022/041810198.html

1)概要

首先bb几句
本文主要介绍正向代理和反向代理的区别,如何区分,各自的好处,还有一些应用场景
主要是白话文的内容,不会有太多专业术语,主要是面向纯小白,做个解疑
部分地方稍微不严谨,纯粹只为更好的理解

2)什么是代理

1.介绍代理

代理的精髓重在于
游戏代理,网购代购,某同城代跑腿
代 主要在于一个"替别人干事" 的感觉
只不过互联网中,代理 这个名词稍微高级了一丢丢

为了方便接下来的理解,请一定要先熟悉这个:C-S架构

2.C-S架构

C 是客户端,client,n. [经] 客户;顾客;委托人
S 是服务器,server,n. 服伺者;服勤者;计算机网络服务器;计算器主机
百度百科的介绍就挺详细的:服务器-客户机
必须理解了这个,才可以简单易懂的理解正向代理和反向代理的区别,所以我再多简单介绍几句
说白了,C-S就是一个客户和老板的关系,需要服务的一方和提供服务的一方关系
买东西的是client,卖东西的server,买东西是一种需求,卖东西是满足别人的购物需求
浏览网页的人是client,搭建网页的人是server,浏览网页是一中获取信息的需求,做网页的人提供了信息提供的服务

本文不考虑B-S架构,虽然不严谨,但是对于理解正向代理和反向代理很有用
理解了C-S架构,理解了正向代理反向代理以后,自然会懂B-S架构是什么,
就好比高中物理说不存在向心力,那也只是在高中物理的范畴之内为了学生更好的理解而说的
还有就是先“不严谨的认为ip是每人都不同的”,理解了ip以后,再去理解内网和外网ip

3)区分正向代理和反向代理

代理的本质,就是"中介",主要是要搞懂,这个中介在代替client,还是代替server

“替真正的client”,向server申请服务的是正向代理
正向代理是client的行为,目的是为了伪造出"client身份"

“替真正的server”,给client提供服务的是反向代理
反向代理是server方的行为,目标是伪造出"server身份"

4)正向代理怎么理解

刚刚说了,伪造了client身份的,就是正向代理,来几个例子

1.生活场景

一些什么情况需要伪造client身份呢?
比如,想买烟的未成年和不准卖烟给未成年的烟店老板,一个是client,一个是server
这个未成年需要买烟的话,就不能以自己的身份来买,所以他需要叫个代跑腿的成年小哥
这个时候这个跑腿小哥就是未成年小伙伪造的"client",属于正向代理

2.互联网场景

某用户小A,不想要某网站发现他的ip登录过,使用代理ip以后,他在互联网中的所作所为,就好像都是那个代理iP在做的
代理ip代替着小A,互联网中的各个server们只知道代理ip来过,不知道小A来过
又比如一些网站禁止一个ip访问太频繁,但client方的小B又需要频繁获取这个网站的信息,那么"正向代理"的代理ip就起作用了
小B只需要频繁更换代理ip来伪装是很多client访问网站就行了。

5)反向代理怎么理解

正向代理是伪造的client身份,那么反向代理伪造出"server身份"的场景了

1.生活场景

先说下生活场景,
假如有这么一个生产车间,里面有价格高昂的各种加工设备,这个车间的服务是"拿到用户寄过来的材料,然后对材料进行加工后给客户",为了保证安全,车间安排在一个无人知晓的地下密室中,然后在人人能看到的地方建了一个"招待厅",再接受客户的材料时,需要先在招待厅验货,然后由招待厅秘密运输给地下密室车间去处理和加工,加工完以后通过一次招待厅把加工好的东西返给客户
这样的好处是:招待厅的搭建比车间肯定要简单,车间有各种机器,招待厅只要放几把"椅子",如果有一个招待厅被导弹炸了,车间还在,只需要再建一个招待厅,就可以继续工作,提供服务,而且不需要担心有些客户在材料里偷偷藏屎。

2.互联网场景

就拿上面的生活场景对比,很多互联网公司的网站,都是做了类似的处理的,用户在网站上的操作和数据,需要在某个重点服务器上进行计算和处理
这个重要的服务器就等同于"真正的生产车间"
所以就需要一个招待厅,一般的互联网公司都是用的Nginx服务器
用户感觉自己的请求都是这个"招待厅-nginx服务器"处理的,但其实真正的server被隐藏起来了
nginx是隐藏的server
这样就可以在nginx前台服务器上做些安全处理,比如"防止客户藏屎",对于一些疑似不安全的请求记录,就不转发到后台主服务器
再比如如果有人炸掉了招待厅———"DDos"攻击导致服务器崩溃,主要生成环境没被破坏,可以快速搭建一个新的nginx服务器,nginx服务器搭建肯定比系统主环境服务器简单
快速搭建的话,一般都有搭建脚本,用git或svn拉一下nginx配置文件,跑起来就恢复了,有些还在tx云或者al云上有对应的系统镜像,搭建更快

6)总结

首先正向代理和反向代理都是"替人办事"的身份,主要区分在于:

正向代理伪造client,反向代理伪造server

另外两者的好处就是:
说道好处,那肯定就只是对自己而言的

正向代理的好处是对client而言的,反向代理的好处是对server而言的

这么说还是有点绝对…但主要是这样的

client使用正向代理隐藏了自己的真实身份,server用反向代理保护了server的安全

正向代理和反向代理在互联网中真的非常常见,可能只是有的注意不到那么多
个人感觉比较经典的正向代理就是代理ip,反向代理就是前台nginx转发后台主服务器的架构了

Java高级 正向代理和反向代理理解相关推荐

  1. java面试题之个人对正向代理和反向代理的理解

    为什么使用代理? 提高响应速度: 因为我们发送给代理服务器的请求,目标主机(真正的服务器)返回的数据会储存在代理服务器主机的硬盘上,当下一次同样的请求访问时,直接从硬盘读取,加快访问速度,尤其是对一些 ...

  2. 彻底理解正向代理和反向代理

    转载自 彻底理解正向代理和反向代理 平时工作中我们会接触到各种代理,它到底是什么概念呢,又是什么工作原理,下面我们具体来分析一下. 1.概念 正向代理 这个很好理解,比如说你现在要访问一个外国的社交网 ...

  3. 彻底理解正向代理、反向代理、透明代理

    套用古龙武侠小说套路来说,代理服务技术是一门很古老的技术,是在互联网早期出现就使用的技术.一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术.常用的代理技术 ...

  4. Java后台架构-分布式-高可用-集群-负载均衡-正向代理和反向代理

    双 11 即将来临,本文以设计淘宝网的后台架构为例,介绍从一百个并发到千万级并发情况下服务端的架构的14次演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知. 文章最 ...

  5. 正向代理与反向代理的理解以及区别

    正向代理与反向代理 参照了知乎以及百度的一些列子,以下说一下自己的理解 - 正向代理 先搭建一个属于自己的代理服务器 1.用户发送请求到自己的代理服务器 2.自己的代理服务器发送请求到服务器 3.服务 ...

  6. 轻松理解正向代理与反向代理

    点击蓝色"程序猿DD"关注我哟 我知道有很多专注于业务研发的童鞋,经常搞不清"正向代理"与"反向代理"这两个东西.很多时候,因为这些东西的应 ...

  7. 我对正向代理和反向代理的理解

    之前一直听过代理服务器,就模模糊糊的认为就是代替服务器的,但具体是怎么工作的,什么工作原理,却一直没搞清楚,今天也梳理下正向代理和反向代理的含义,以及两者之间的区别.下面贴出正向代理和反向代理的图示: ...

  8. 关于正向代理和反向代理的理解

    正向代理与反向代理都是客户端访问代理服务器,然后通过代理服务器访问真正提供服务到服务,但是正向代理与反向代理具有根本的区别,如下: 1.反向代理 使用反向代理时,用户实际访问的就是反向代理服务器到某个 ...

  9. 浅析Nginx 正向代理与反向代理

    1.正向代理和反向代理的概念 无论是正向代理,还是反向代理,说到底,就是代理模式的衍生版本罢了.我们都学习过代理设计模式,都知道代理模式中有代理角色和被代理角色,为什么这么说,因为这两个角色对于我们理 ...

最新文章

  1. 语言输出换行符号是什么_世界上最难的5种编程语言
  2. python 气泡图 聚类_2015年度10大Plotly数据可视化美图及工具介绍
  3. Python查找相同元素,不同元素
  4. Linux学习记录-----《快乐的Linux命令行》.
  5. 【excel】日期函数DateDif
  6. 判断iframe是否加载完毕的方法(兼容ie和Firefox)
  7. 李宏毅机器学习(二)自注意力机制
  8. 客座编辑:黎建辉(1973-),男,博士,中国科学院计算机网络信息中心研究员、博士生导师...
  9. Django框架 之基础入门
  10. CTF之文件包含的猥琐思路
  11. CNN进行新闻文本分类代码实战,包含分类文本
  12. 向上累积频数怎么算_视频号怎么运营?小白也能迅速get的技巧
  13. 【leetcode】332. Reconstruct Itinerary
  14. 代码轻视频系列#001
  15. 7)Thymeleaf 内联表达式、文本、JavaScript、CSS
  16. 马斯克的“半机械人”还没出现,这位日本少年却已经可以让你变身“半机械人”了...
  17. python编程手机_手机最强Python编程神器,在手机上运行Python
  18. php 坏了怎么修复,winload.exe丢失或损坏怎么办
  19. mysql数据库修复工具 innodb表数据恢复 ibd文件恢复工具
  20. android怎么用apk,手机如何安装APK应用教程 小白操作安卓系统教程 (全文)

热门文章

  1. freetype 函数介绍
  2. 4.19@深圳 | 品牌出海正当时,如何更有方向感?
  3. 数据可视化—复杂网络关系图的绘制
  4. uni-app三级联动笔记
  5. eclipse中文版 中英文切换 + 全语言转换
  6. R语言-查看加载包、卸除加载包及安装包与卸载包
  7. Servlet的工作原理简介
  8. diy直立双足机器人_动手制作机器人,双足移动机器人DIY
  9. PHP中的网络编程 -- Socket篇
  10. java复杂逻辑如何设计_javabean如何实现复杂的业务逻辑