目录
一.为什么要使用Cookie和Session
二.例子理解Cookie和Session
三.Cookie学习
1.Cookie概念
2.查看和学习页面上的Cookie信息
(1)查看当前网页的Cookie信息
?(2)通过Fiddler来查看当前页面的具体Cookie信息
四.会话机制(Session)的学习
1.有关Session的信息
2.服务端对于Session信息是如何处理的
3.servlet开发中session的设置
4.通过Fiddler来查看服务端是如何返回SessionId信息
一.为什么要使用Cookie和Session
Cookie和Session是客户端(网页)与服务端(服务器)进行沟通的一种中间工具,由于HTTP协议自身是无状态的,例如张三访问CSDN首页(网页一般是遵守http协议进行传输),然后登录自己的CSDN,那么之后如果张三写博客时,会从首页跳转到写博客的页面,当张三跳转到写博客页面的时候,服务端是如何知道当前是哪个用户访问写博客这个页面。这时候就需要借助Cookie和Session来实现这样的功能。
二.例子理解Cookie和Session
这里可以将Cookie比作成一个令牌,而服务器端需要通过Session机制来记录令牌信息,以及令牌中的用户信息。
三.Cookie学习
1.Cookie概念
Cookie 中存储了一个字符串, 这个数据可能是客户端(网页)自行通过 JS 写入的, 也可能来自于服务器(服务器在 HTTP 响应的 header 中通过 Set-Cookie 字段给浏览器返回数据)。使用Cookie的目的就是实现身份标识的功能。一般的Cookie存储在我们的内存中,而且Cookie是不可跨域名的,通俗的理解就是不同的服务器之间的Cookie不会发生冲突。
2.查看和学习页面上的Cookie信息
(1)查看当前网页的Cookie信息
?(2)通过Fiddler来查看当前页面的具体Cookie信息
?
可以看到上面不同页面携带的Cookie信息是基本是相同的?(里面的内容很多,只截取了一部分)。可以验证Cookie主要就是携带一些身份信息来帮助服务端来识别用户身份。
四.会话机制(Session)的学习
1.有关Session的信息
服务器同一时刻收到的请求是很多的. 服务器需要区分清楚每个请求是从属于哪个用户, 就需要在服务器这边记录每个用户令牌以及用户的信息的对应关系。
因为会话本质就是就是一个Hash表,其中的key就是SessionId,value就是用户信息。其中的Session是一个标识身份的唯一性字符串,一个用户对应一个SessionId。
2.服务端对于Session信息是如何处理的
当用户登录的时候,服务器,会给该用户创建一个Seeion会话,然后给客户端通过Set-Cookie字段,将SessionId来返回客户端,客户端后续再发送请求的时候,就会在headers中的Cookie字段中携带上SessionId属性,然后服务器根据客户端请求中携带的SessionId来获取到对应的Session信息中的用户信息,接着再实现下一步操作。
3.servlet开发中session的设置
如果在Servlet开发的时候,当用户登录成功后服务端会获取请求中Cookie携带SessionId,无论存在,都将重新设置Seesion会话信息,而且服务端会自动给客户端在响应中携带一个SessionId信息,之后访问其他页面就可以根据请求中携带的Sessionid信息来判断是哪个用户在访问当前页面。
4.通过Fiddler来查看服务端是如何返回SessionId信息
?
可以看到,第一次登录的时候就在Set-Cookie中包含SessinId信息,之后访问其他页面就会携带该信息,通过之后请求中携带的Cookie信息来判断指定用户信息。
|