以前老是对session和cookie这两个概念很模糊,今天就研究下他们的原理和关系前端
在说session和cookie以前,咱们先来讲说session和cookie出现的缘由算法
众所周知,http是无状态的,也就是说在客户端和服务器链接期间,客户端向服务器发送的请求是不带用户信息的,因此咱们是没法辨别出这个请求是哪一个用户发出的。数据库
为了解决这个问题,就得借助其余技术,cookie和session就由此诞生服务器
首先须要阐明的一点:session是一种网络通信的会话机制,而cookie只是实现这种机制的主流方案中的一个,cookie通常是用来保存sessionID的cookie
Cookie是存储在客户端的一段数据,一般记录一些网站的密码和用户名等,当客户端发送请求的时候,服务端须要记住这个用户的信息,就在返回给前端的数据中设置Cookie,客户端接受到这个请求后,会把Cookie保存起来,当再次访问服务器的时候将会带上这个Cookie,服务器经过这个Cookie来获取用户状态网络
基本过程:session
Cookie有不少的参数,能够根据这些参数设置Cookie的过时时间和是否能被js更改等post
若是客户端禁用了Cookie,一般客户端会采用url重写技术,好比会在url后面加上一个诸如sid=xx的参数网站
session是保存在服务端的,当用户登陆系统后,服务端会根据一个算法,生成一个sessionID,这个sessionID惟一标识一个会话,服务端将这个sessionID存储在内存中,数据库或者文件当中,并设定必定的有效期,并将sessionID写入到Cookie当中返回给客户端,当下一次客户端请求的时候会带上sessionID,服务端会将客户端中的Cookie与服务端中记录的进行比较,从而肯定一个会话url
基本过程:
参考连接: