会话
在讲清楚什么是Cookie和Session之前,我们先来了解什么是会话以及http协议无状态。
1. http协议无状态
无状态的官方解释:
- 协议对于事务处理没有记忆能力
- 对同一个url请求没有上下文关系
- 每次的请求都是独立的,它的执行情况和结果与之前的请求和之后的请求是无直接关系的,它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况
- 服务器中没有保存客户端的状态,客户端必须每次带上自己的状态去请求服务器。
简单理解就是客户端是第二次访问服务器,服务器还是把此次访当做一个新的访问进行处理,因为服务端并不知道客户端之前是否访问过。
为了解决这一问题,Web程序中采用会话跟踪技术,会话跟踪技术就是依靠Cookie和Session实现。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。
2. 会话
一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止。一次会话中包含多次请求和响应。有了会话跟踪可以在一次会话的范围内的多次请求间,共享数据。
Cookie
1. Cookie是什么?
客户端会话技术,服务端给客户端的数据,存储于客户端(浏览器)。由于是保存在客户端上的,所以存在安全问题,并且cookie是由个数和大小限制的(4KB),所以一般cookie用来存储一些比较小且安全性要求不高的数据,而且一般数据都会进行加密。
2. Cookie的使用案例
2.1 记住用户名
登录时,在服务器端获取到用户名,然后创建一个cookie,将用户名存入cookie中,发送回浏览器端,然后浏览器下次在