客户端会话技术——Cookie
前言
本文简单的介绍了Cookie会话技术的相关知识点,适合初学者入门
一、状态管理Cookie会话技术(客户端)
1.1 状态管理概述
1.1.1 为什么需要状态管理?
- Web应用程序使用HTTP协议通信,而HTTP协议是”无状态”协议,即服务器一旦响应完客户的请求之后,就断开连接,而同一个客户的下一次请求将重新建立网络连接。
- 服务器应用程序有时是需要判断是否为同一个客户发出的请求,比如客户的多次选购商品。因此,有必要跟踪同一个客户发出的一系列请求。
1.1.2 什么是状态管理?
什么是状态管理
- 将客户端((浏览器)与服务器之间多次交互(一次请求,—次响应)当做一个整体来看待,并且将多次交互所涉及的数据即状态保存下来。
- 状态指的是数据
- 管理指的是多次交互时对数据的修改
1.1.3 状态管理的两种常见模式(Cookie与Session)
1、客户端状态管理技术:将状态保存在客户端。代表性的是Cookie技术。
2、服务器状态管理技术:将状态保存在服务器端。代表性的是Session技术。
1.2 Cookie(面试)会话技术
会话技术
- 会话:一次会话中包含多次请求和响应。
- 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止
- 功能:在一次会话的范围内的多次请求间,共享数据
1.2.1 什么是Cookie?(可以跟重定向对比一下)
- 浏览器向Web服务器发送请求时,服务器会将少量的数据以set-Cookie消息头的方式发送给浏览器,浏览器将这些数据保存下来。
- 当浏览器再次访问服务器时,会将这些数据以Cookie消息头的方式发送给服务器。
1.2.2 Cookie的原理
- 我们写了两个Demo,在tomcat中运行,相当于这两个Demo在服务器中
- 我们通过浏览器输入Demo1(发送cookie)的地址来发送请求,此时服务器作出响应,并发送了一个set-cookie(响应消息头里)
- 此时浏览器获取到了服务器的内容(因为服务器会给浏览器一个响应)
- 我们再在浏览器中输入Demo2的地址和请求消息头,服务器根据消息头和地址找到对应的资源,并响应给客户端。
1.2.3 如何创建Cookie
- 创建cookie对象,绑定数据。
- 发送Cookie对象。
- 获取cookie,拿到数据。
- Servlet API为使用Cookie提供了javax.servlet.http.Cookie。
- 创建格式
Cookie c = new Cookie(String name,String value);
response.addCookie(c);
name :用于区分不同Cookie的名字。
value :Cookie的值。
简单示例:
Cookie c = new Cookie("welcome","welcome to zhongshan");
response.addCookie(c);
1.2.4 如何查询Cookie
- 获取客户端的所有Cookie对象∶
Cookie[] cookies = request.getCookies();//此方法有可能返回NULL
- 取一个Cookie对象的名称或值: