Session 和 Cookie

昨天下午下班本来想快点写完回家睡觉,但事情总没有人们想象的那么顺利,所以就在上班时间补上了。

  在开始Session和Cookie的说明之前,先简单回忆一下web的发展历程:

  1. web 1.0时代,人们的主要角色是坐在在电脑旁成为一个被动接受信息的浏览者,此时的用户与服务器没有交互。而HTTP协议本身是一种无状态的的协议,所谓的无状态,就是指在交互过程中浏览器对于事物的处理没有记忆能力,当然处于1.0的时代没有必要记住用户在几分钟或是500年前做过什么操作。

  2. web 1.5&2.0时代,网民的角色发生改变,由以前的信息被动接收转为网络社会的主要参与者,而HTTP无状态的特性严重阻碍了网络应用程序的发展,例如在网络购物中,用户购买的商品无法在全部选择完之后再进行结账。于是出现了能够保持HTTP链接状态的技术:Cookie技术和Session技术,使用他们来存储用户与服务器交互的状态。

  Session的英文意思为“会话”,表示用户从打开浏览器到关闭浏览器之间的时间间隔。

  Cookie的英文含义为"小甜饼",表示服务器为了验证用户而存放用户信息的文件。

  基本原理:用户与服务器进行交互,通常会附带发送一些个人信息,服务器在处理完用户请求之后便会返回用户所需要的数据,并将其他的信息保下来,我们称之为Session。服务器出了返回用户能看见的数据之外,还会将用户的信息放在HTTP响应头中返回给用户的客户端,并且保存在客户端的特定目录,我们称之为Cookie,Cookie中的信息保存了唯一的用户记录。当用户下一次与服务器进行交互的时候,Cookie就会被放在HTTP响应体中发送到服务端,服务端通过Cookie中特有的信息来完成用户的验证。假设有N个人与服务器进行交互,就会在N个人使用的机器上产生N个Cookie,在服务端也会产生N个Session,相当于N把钥匙开N把锁。(这都是什么语言啊,我都不知道自己的逻辑顺序了 o(╯□╰)o) 算了,先写这些吧

原文地址:https://www.cnblogs.com/Jqxing/p/3028662.html