Cookie与Session

Cookie的属性

Name : 该cookie的名称

Value : 该Cookie的值

Domain : 可以访问此cookie的域名,比如->www.baidu.com 这就是域名

Path : 可以访问此页面的路径,比如->www.baidu.com/demo ,这个/demo就是路径

Expires/Max-Age : 该cookie的最大存活时间,默认存活时间是随会话结束而失效

Size : 该cookie的大小

Http : httponly属性,若为true,则只有http请求可以访问该cookie,而不能通过document.cookie来访问此cookie

Secure : 设置是否只能通过https来传递此条cookie

如何使用cookie

接收cookies : 每次http请求发生时,浏览器会把符合条件的cookies通过request传入后台,可用request的getCookies方法获取cookies

新建cookie : 通过new Cookie()创建新的cookie

发送cookie到浏览器 : 通过HttpServletResponse的addCookie()方法把cookie传入到浏览器.

在后台可以通过HttpServletRequest, HttpServletResponse和Cookie类来新建,修改,操作cookie.例如为cookie设置路径等

Session

服务器可以为每个用户浏览器创建一个session对象,一个浏览器独占一个session对象(默认情况)创建后会将session的id号以cookie的形式传回给客户端,只要会话不结束,客户端的浏览器再访问服务器时,都会带着sessionId,从而找到服务器内存中对应的session.

session是jsp的内置对象之一,jsp会自动生成session对象,也可以用request的getSession(true)的方法强制新建session.

session存储在服务器端,以键值对的方式存储数据

JSP中获取session:

  ${sessionScope.XXXX}

Cookie与Session的对比

储存位置 : cookie储存于客户端临时存储文件夹中, session储存于服务器内存中

安全性 : cookie以明文方式存储在客户端,安全性低,可以加密后在存储, session存储在服务器中,安全性较高

网络传输 : cookie会传递消息给服务器, session不传递,因为本身就存储在服务器中

生命周期 : cookie默认会话结束就销毁, session在第一次访问服务器时创建,tomcat中默认失效时间为30分钟

访问范围 : cookie为多个浏览器共享, session为一个浏览器使用

销毁方法 : cookie可用setMaxAge()设置存活时间为0的方法, session可用invalidate()方法

原文地址:https://www.cnblogs.com/jinyu59/p/10646043.html