yuadhのinterview_note yuadhのinterview_note
前端基础
软件框架
算法|数据结构
基础学科
系统|工具
项目
面试综合
专栏
GitHub (opens new window)
前端基础
软件框架
算法|数据结构
基础学科
系统|工具
项目
面试综合
专栏
GitHub (opens new window)
  • 字节前端青训营

  • blog

    • 常用登录功能的逻辑
      • 登录功能
      • cookie
    • 代码多环境开发
  • 面试综合
  • blog
yuadh
2023-02-07
目录

常用登录功能的逻辑

# 登录功能

HTTP 是无状态的协议,每一次 HTTP 请求和响应都是一次性的,服务器本身没有记录访问和响应的状态,无法分辨每一次发送者是否为同一浏览器。随着互联网的发展,有了此类的需求,为了进行会话跟踪就需要维护一个有记录的状态。这个状态就是用来记录请求是否来自同一会话的东西,采用 cookie 和 session 技术实现

会话: 用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可以包含 多次 请求和响应

会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便同一次会话的多次请求 共享数据

体现:网站登录后多个页面有用户名等信息、网站勾选 记住我 后会自动填充账户密码

  • 客户端会话跟踪技术 : cookie
  • 服务端会话跟踪技术:session

# cookie

客户端会话技术,将数据保存到客户端,每次请求都携带 cookie 数据

1673447110309.png

服务端提供了两个 Servlet,分别为 A 和 B

  1. 浏览器发送HTTP请求1给服务端,服务端ServletA接收请求并进行业务处理
  2. 服务端ServletA在处理的过程中可以创建一个Cookie对象并将name=zs的数据存入Cookie
  3. 服务端ServletA在响应数据的时候,会把Cookie对象响应给浏览器
  4. 浏览器接收到响应数据,会把Cookie对象中的数据存储在浏览器内存中,此时浏览器和服务端就 建立了一次会话
  5. 在同一次会话 中浏览器再次发送HTTP请求2给服务端ServletB,浏览器会携带Cookie对象中的所有数据
  6. ServletB接收到请求和数据后,就可以获取到存储在Cookie对象中的数据,这样同一个会话中的多次请求之间就实现了数据共享

基本使用

创建 Cookie 对象

Cookie cookie = new Cookie("key","value");
1

发送 Cookie 对象

response.addCookie(cookie);
1

获取 Cookie 对象

Cookie[] cookies = request.getCookies();
1

使用 Cookie 对象

cookie.getName();
cookie.getValue();
1
2
编辑 (opens new window)
上次更新: 2023/02/07, 15:11:55
day04-HTTP
代码多环境开发

← day04-HTTP 代码多环境开发→

最近更新
01
青训营真题day01
02-07
02
01day01-html与css
02-07
03
day02-js
02-07
更多文章>
Theme by Vdoing | Copyright © 2022-2023 yuadh | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式