17 CBV加装饰器与正反向代理简介

482次阅读
没有评论

共计 1199 个字符,预计需要花费 3 分钟才能阅读完成。

一.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. 正向代理原理

  • 正向代理类似于一个中转站
  • 国内不能直接访问到外网, 我们可以通过一台正向代理服务器 (可以访问外网), 将请求发送到该服务器上, 服务器帮我们去外网拿数据, 再返回给我们, 这样我们就间接的访问了外网资源

17 CBV 加装饰器与正反向代理简介

2. 正向代理的作用 (运用场景)

  • 借助中转访问无法访问的资源, 比如 google
  • 可以做缓存, 加速访问资源
  • 对客户端进行访问授权, 上网进行认证
  • 代理可以记录用户端的访问记录, 对外隐藏用户信息 (上网行为进行管理)

3. 举例

  • 买票找黄牛

四. 反向代理

1. 反向代理原理

  • 反向代理(Reverse Proxy)实际运行方式是指以代理服务器来接受 internet 上的连接请求
  • 然后将请求转发给内部网络上的服务器 (内部可以有好多台),并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个服务器

17 CBV 加装饰器与正反向代理简介

2. 反向代理的作用

  • 保证内网的安全,阻止 web 攻击,大型网站,通常将反向代理作为公网访问地址,Web 服务器是内网

  • 负载均衡,通过反向代理服务器来优化网站的负载

3. 举例

  • 比如我们访问天猫、淘宝等平台, 我们访问的只是一个对外的 ip 地址, 也就是一台服务器, 二他们内部不可能只使用一台服务器来存放用户信息, 内部一定是有许多服务器的, 而我们访问的对外的这台服务器就是作为反向代理服务器来使用的, 将用户的请求转发到内网各个服务器中去
  • 再比如我们使用租房软件选择房源, 我们相当于是一个客户端, 租房软件就相当于一个反向代理服务器, 它身后掌握着许多的房源, 但我们面对的只是租房软件 (类似于一对多)

五. 正反向代理总结

  • 正向代理,代理的是客戶端
  • 反向代理,代理的是服務端
正文完
 
shawn
版权声明:本站原创文章,由 shawn 2023-06-16发表,共计1199字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)