日常笔记19/2/28-19/3/08

一:19/2/28   周四

1):  Servlet之cookie和session

简介:因为HTTP是无状态的请求,为记录客户端与服务端交互数据,Servlet基于浏览器的cookie机制实现了Session来解决客户端与服务端的交互数据。

Cookie    是存储在客户端计算机上的文本文件(浏览器可以存储多个cookie并以一种map的形式管理这些cookie)

Session   相反Session是存储在服务端的数据(存储在内存中)  ,数据是一种key=value形式,其中value是一种map集合(即一个key对应多个key1=value2的属性)

**)   客户端(浏览器或手机)一旦与服务器交互(无论是get或post请求),服务器只有需要(request.getSession()  返回新创建的或之前的Session对象)时才会创建一个session对象,并相应返回一个sessionid(即该对象的id)给客户端。客户端会把该信息存储在浏览器的cookie集合中,如下图。

备注:由浏览器存储sessionID的形式,我们可以推断,服务器就是创建了一个Cookie("JSESSION",SESSIONID)相应给浏览器(下面的就是我在服务端创建的Cookie)。

**)   一旦服务器相应cookie给客户端(比如显示设置了1个),客户端每次发送请求到给服务端都会携带该多个cookie(数量为显示设置的cookie数加一)。故我们不应该设施太多cookie值,避免和服务器交互时产生多余的数据。

备注:  故我们可以手动创建cookie,来实现session功能。

***): JavaScript也实现了一种cookie机制(JavaScript 可以使用 document.cookie 属性来创建 、读取、及删除 cookie。),注意他两不是一回事。

备注1:document.cookie可以查看和修改服务器返回的cookies,(修改后的值也传送到服务器了??是的验证过)

备注2:通过document.cookie创建的cookie不会传送到服务器。(也可以理解是一种保护机制^_^,但为什么可以修改??)

猜你喜欢

转载自www.cnblogs.com/jinliang374003909/p/10450595.html
19