会话技术Cookie和Session详解

文章目录

  • 会话跟踪技术的概述
    • 会话
    • 会话跟踪
    • 思考
  • Cookie
    • Cookie的基本使用
      • 概念
      • 工作流程
      • Cookie的基本使用
    • Cookie的原理
    • Cookie的使用细节
      • 存活时间
      • 关于cookie中存储特殊字符问题
  • Session
    • Session的基本使用
      • 概念
      • 工作流程
      • Session的基本使用
    • Session的原理
    • Session的使用细节
      • 浏览器关闭后,session持久化方案
      • Session的钝化与活化(了解)
      • Session销毁
  • 小结

会话跟踪技术的概述

会话

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

  • 从浏览器发出请求到服务端响应数据给前端之后,一次会话(在浏览器和服务器之间)就被建立了
  • 会话被建立后,如果浏览器或服务端都没有被关闭,则会话就会持续建立着
  • 浏览器和服务器就可以继续使用该会话进行请求发送和响应,上述的整个过程就被称之为会话

会话跟踪

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

  • 服务器会收到多个请求,多个请求可能来自多个浏览器
  • 服务器需要用来识别请求是否来自同一个浏览器
  • 服务器用来识别浏览器的过程,这个过程就是会话跟踪
  • 服务器识别浏览器后就可以在同一个会话中多次请求之间来共享数据

思考

为什么现在浏览器和服务器不支持数据共享呢?

  • 浏览器和服务器之间使用的是HTTP协议来进行数据传输
  • HTTP协议是无状态的,每次浏览器向服务器请求时,服务器都会将该请求视为新的请求
  • HTTP协议设计成无状态的目的是让每次请求之间相互独立,互不影响
  • 请求与请求之间独立后,就无法实现多次请求之间的数据共享

分析完具体的原因后,那么该如何实现会话跟踪技术呢? 具体的实现方式有:

  1. 客户端会话跟踪技术:Cookie
  2. 服务端会话跟踪技术:Session

这两个技术都可以实现会话跟踪,它们之间最大的区别:
Cookie是存储在浏览器端,而Session是存储在服务器端

Cookie

Cookie的基本使用

概念

Cookie:客户端会话技术,将数据保存到客户端,以后每次请求都携带Cookie数据进行访问

工作流程

会话技术Cookie和Session详解_第1张图片

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

你可能感兴趣的:(JavaWeb,cookie,session)