神秘的Cookie和Session

Cookie

1.Cookie是什么?

Cookie是浏览器提供的持久化储存数据的方式。

2.从哪里来?

Cookie从服务器中来,存储到客户端中。一个客户端就对应着一个浏览器。

服务器代码中决定了什么样的数据会储存到客户端中,通过HTTP相应的Set-Cookie字段,把键值写到客户端~

3.Cookie到哪里去?

Cookie会在后续客户端访问浏览器的时候带到请求的header中,然后发给服务器。

因为服务器并不是只给一个客户端提供服务,同一时刻要处理多个客户端。此时服务器就可以通过cookie中的信息来识别当前客户端是谁,当前的客户端的服务提供到哪一个环节了。

4.Cookie存储在哪里?

存在浏览器中(客户端)所在的主机子的硬盘中。

5.简单示例

淘宝有一个登录功能。登录账号后,不论是打开的任何页面,都不需要重新登陆。这个时候就是Cookie的功劳。所有打开的网页都是一个账号,但是同一时间一个浏览器只能是一个账号。神秘的Cookie和Session_第1张图片

6.Cookie和Session之间的关联和区别

关联

在网站的登录功能中,需要配合使用。

区别

Cookie是客户端的储存机制,而Session是服务器的储存机制。

Cookie里面可以存各种键值对和别的信息,而Session则专门用来保存用户的身份信息。

Cookie完全可以单独使用,不搭配Session(实现非登陆场景下)

Session也可以不搭配Cookie使用。(手机app登陆服务器,服务器也需要Session,此时就没有Cookie的概念) Cookie是跟浏览器强相关的。

Cookie是属于HTTP 协议中的一个部分。

Session则可以和HTTP无关(TCP,websocket ...也可以用session)。
神秘的Cookie和Session_第2张图片

getSession中,true代表着这个会话存在就返回现有的,不存在就创建一个新的。false的区别知识在于如果不存在就返回null,也就是不创建新的。神秘的Cookie和Session_第3张图片

每一个会话中的具体内容,都由程序员自己设定。同时每一个session的sessionId决定了之间的不同。

最后重定向到index中

神秘的Cookie和Session_第4张图片

要注意,HttpSession value的类型是Object,此处需要String就需要手动强转成String。用Object的原因是存各种类型都可以,只需要转换类型就可以使用。

你可能感兴趣的:(servlet)