session与cookies的区别

1.session的简单介绍

session是一种保存上下文信息的机制,保存的是对象,它的值是存放在服务器端,它通过sessionId来区分不同的客户端,而sessionId是保存在客户端的,做为客户端与服务器的验证标识,它是一个24位的随机字符串,用户每次提交页面时,浏览器都会把这个sessionId包含在HTTP头中提交给WEB服务器。

2.session的产生过程

当服务器接收到客户端的请求,要求产生一个session时,服务器会先检查下,客户端的cookies中是否有sessionId,并且判断它是否过期。若有sessionId且还没有过期,则会根据该sessionId值将服务器中的session检索出来;否则,将产生一个新的session,当创建一个新session后,服务器也会产生一个sessionId号,回写客户端的cookies当中。

3.cookies的主要组成

cookies主要由cookies名,cookies值,过期时间和域,路径等组成。若对过期时间进行设置,则cookies会被保存在硬盘上;若没有,则cookies被保存在浏览器内存中。

4.主要区别

a.session 是保存在服务器端,客户端无法知道其中的信息;而cookies是保存在客户端的,服务器端可以知道其中的信息;

b.session保存的是对象,而cookies保存的是字符串;

c.session不区分路径,同一个用户在同一个网站期间,所有的session在任何一个地方都可以访问到。而cookies是区分路径的,如果设置了路径参数,那么同一个网站不同路径下的cookies是互相访问不到的。

你可能感兴趣的:(面试准备,JAVA基础,Java必备面试指南)