Session和cookie是网络编程中很重要的两个东西,先说一下本质。
Session相当于在服务器的内存中每一个浏览器去连接它,它都会分配一个空间来单独存放与这两个浏览器的信息。就相当于什么呢?举个例子:小明现在要找同学聊天,小明和同学加了好友,比如微信:里面有小明和同学两个人单独的聊天记录,,这个就相当于session。但又不一样,聊天记录可以一直存在,session当浏览器断开之后,比如打开Google,如下图:
这时候Google与产生联系的服务器就已经创建session。就好像是一个空间,内存中分配的空间。只要你一直访问,session就一直存在;当关闭Google搜索之后,断开连接之后呢,Google那边的session一般有保存的时间,这就要看服务器是怎么配置的了,一般的保存时间是30分钟左右,时间到了之后就会把session清空。意思就是当两个人停止聊天了,session就没必要一直打开。
Cookie又是啥呢?cookie在这里是数据记录的格式,而不是曲奇饼干哈!它和session刚好相反,session是在服务器端,而cookie就在浏览器端。如下图:
在浏览器中,比如登陆用户信息,Cookie需要浏览器那边返回生成cookie的要求,就把数据放在浏览器,浏览器就以cookie的形式把数据存到浏览器内部。当下次再登陆的时候,浏览器就会把上次保存好的cookie发送给服务器的session,服务器就会解析cookie,拿到登陆的信息,然后就自动登陆了,是不是很方便,这样就不用每次登陆的时候输密码输账号等。Cookie也是有时限的,比如有的用户长时间没有登陆,它不能自动登陆了。因为cookie已经失效,被浏览器删除掉。打开浏览器,浏览器就会检查过期的cookie并删除。Cookie一般以加密的形式保存在浏览器的,但是也有被盗取的风险。被盗取是很危险的,因为涉及到用户的账号密码之类的信息。
你会发现cookie和session都是存放个人信息的,只是它们存放的位置不同。在网络编程中,经常使用session。cookie的使用相对较少,一般在登陆的时候使用。Session的使用如下:
:
在做项目过程中还可以使用session存放验证码字符串,这是实现的代码。大家在网络编程过程中经常使用session和cookie,就能体会其中的含义啦。