芋道代码解析-后端(1)-安全与鉴权

主要使用的框架:Spring Boot Security

前置基本术语和知识

  • 网页服务器(Web Server)一词通常包含两个层面的意义:
    • 硬件层面:指一台负责存放网站文件,并透过网络提供服务的电脑。它借由超文本传输协议(HTTP)与客户端(一般是指网页浏览器)进行资料交换。
    • 软件层面:指一个运行于电脑上的服务器程序(如 Apache, Nginx 或 IIS)。其核心功能是接受用户的请求,并回传相对应的网页内容(如 HTML 文件,图片或资料)。
    • 每一台网页服务器(硬件)至少会执行一个网页服务器程序(软件)。在这篇博客里面,我们主要使用它的软件层面的定义。
  • Servlet(Server Applet)
    • 全称 Java Servlet。是用 Java 编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态的 Web 内容。
    • 当 servlet 被部署在应用服务器(主要是 Web 服务器)中(服务器中用于管理 Java 组件的部分被抽象成为容器),由容器控制 servlet 的生命周期。默认情况下,在第一次请求的时候,servlet 会被加载实例化(注意这个⌈被动⌋的定义)。初始化并跟着正式执行方法后,它会被常驻,知道服务器关闭或被清理时执行一次销毁方法后实体销毁。
    • 它的工作模式主要如下:
      • 客户端发送请求至服务器(由 Web 服务器管理)
      • 服务器启动并调用 Servlet,Servelt 根据客户端请求生成相应内容并将其传给服务器。
      • 服务器将响应返回客户端(由 Web 服务器管理)
    • HttpServlet 实际上是 Java 服务器页面(Jakarta Server Pages,JSP)的前辈。也就是说,更加擅长于动态生成 HTML 的 JSP 脚本实际上取代了 servlet 中的交互模块。
  • 传统的 JavaWeb 三板斧
    • Servlet
    • 过滤器(Filter)
      • Servlet Filter 是在 Serlet 2.3 规范中加入的功能。过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息。
      • 某些情况下,我们需要在业务代码执行前获取请求中的某些信息,就可以使用过滤器。
      • 简而言之:
        • 在客户端的请求访问服务器中的资源之前,拦截这些请求。
        • 在服务器的响应发送回客户端之前,处理这些响应。
      • 如果我们使用一个过滤器不能解决业务需求,那么就用多个,多个过滤器可以对请求和响应进行多次处理。多个过滤器组合而成的就是过滤器链(Filter Chains),请求会依次按照过滤器的顺序一一进入,直到最后一个过滤器为止。当返回响应的时候,也是一样,从最后一个过滤器依次传递到第一个过滤器,最后到达客户端。
    • 监听器(Listener)

这个博主的解析会更加详尽生动,具体可以看以下回答。

为什么要有 Servlet ,什么是 Servlet 容器,什么是 Web 容器? – bravo1988的回答 – 知乎
https://www.zhihu.com/question/585070524/answer/2939949226

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注