🍖CBV加装饰器与正反向代理简介
一.CBV加装饰器
-
可以给类添加装饰器
-
可以在方法上添加装饰器
from django.views import View
from django.utils.decorators import method_decorator
# 第一种写法:直接加在类上
# 第一个参数是装饰器引用,第二个参数是被装饰对象的方法
# @method_decorator(auth,name='get')
class MyViews(View):
# 第二种写法:指名道姓的加在方法上(不需要指定方法名name)
@method_decorator(auth)
def get(self, request, *args, **kwargs):
return HttpResponse('触发get')
def post(self, request, *args, **kwargs):
return HttpResponse('触发post')
二.正反向代理简介
1.什么代理
- 代理其实就是一个中介,A和B本来可以直连,中间插入一个C,C就是中介
- 刚开始的时候,代理多数是帮助内网client访问外网server用的
- 后来出现了反向代理,"反向"这个词在这儿的意思其实是指方向相反,即代理将来自外网客户端的请求转发到内网服务器,从外到内
三.正向代理
1.正向代理原理
- 正向代理类似于一个中转站
- 国内不能直接访问到外网, 我们可以通过一台正向代理服务器(可以访问外网), 将请求发送到该服务器上, 服务器帮我们去外网拿数据, 再返回给我们, 这样我们就间接的访问了外网资源
2.正向代理的作用(运用场景)
- 借助中转访问无法访问的资源, 比如google
- 可以做缓存, 加速访问资源
- 对客户端进行访问授权, 上网进行认证
- 代理可以记录用户端的访问记录, 对外隐藏用户信息(上网行为进行管理)
3.举例
- 买票找黄牛
四.反向代理
1.反向代理原理
- 反向代理(Reverse Proxy)实际运行方式是指以代理服务器来接受internet上的连接请求
- 然后将请求转发给内部网络上的服务器(内部可以有好多台),并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器
2.反向代理的作用
-
保证内网的安全,阻止web攻击,大型网站,通常将反向代理作为公网访问地址,Web服务器是内网
-
负载均衡,通过反向代理服务器来优化网站的负载
3.举例
- 比如我们访问天猫、淘宝等平台, 我们访问的只是一个对外的ip地址, 也就是一台服务器, 二他们内部不可能只使用一台服务器来存放用户信息, 内部一定是有许多服务器的, 而我们访问的对外的这台服务器就是作为反向代理服务器来使用的, 将用户的请求转发到内网各个服务器中去
- 再比如我们使用租房软件选择房源, 我们相当于是一个客户端, 租房软件就相当于一个反向代理服务器, 它身后掌握着许多的房源, 但我们面对的只是租房软件(类似于一对多)
五.正反向代理总结
- 正向代理,代理的是客戶端
- 反向代理,代理的是服務端