Session和Cookie
一、session和cookie简介
1.Cookie
cookie的出现是因为HTTP是一种无状态的协议,也就是说服务器记不住你,可能你每次刷新一次网页,就要重新输入一次账号密码进行登录操作。这样的操作显然是你无法接受的,cookie的作用就好比是服务器给你贴上一个标签,然后你每次像服务器发送请求的时候,服务器就能够让cookie认出你。
- 概括:
一个cookie可以认为是一个[变量],形如name = value,存储在**浏览器**上面;一个session可以理解为一种数据结构,多数情况是[映射](键值对),存储在**服务器**上
。(注:一个cookie可以实习一个变量,但是服务器上面可以设置多个cookie,有时候说cookie是[一组]键值对)。 - cookie可以在服务器通过HTTP的SetCookie字段设置cookie,(cookie是在浏览器上面,这个一定记住)。
cookie的作用其实就是这么简单,无非就是服务器给每个客户端(浏览器)打的标签,方便服务器辨认而已。
2.Session
session由来:
- 上面cookie存在的问题是,我们知道现在很多网站功能很复杂,而且设计很多的数据交互,比如购物网站的购物车功能,信息量大,而且结构比较复杂,无法通过简单cookie机制传递这么多消息,而且要知道cookie字段是存储在HTTP header(请求头)中,就算能够承载信息,也会消耗很多的带宽,这样就比较消耗网络资源。
- 因此session就可以配合cookie来解决这样一个问题,比如一个cookie存储这样一个变量sessionID=xxxx,仅仅把这一个cookie传给服务器,然后服务器通过这个ID找到对应的session,这个session就是一个数据结构,里面存储着该用户的购物车等详细信息,服务器可以通过这些信息返回该用户的定制化网页,有效解决了追踪用户的问题