Session和Cookie之间的区别以及联系

Session和Cookie之间的区别以及联系

网上确实学习资料比较多,但是我个人感觉啊,你自己不好好的系统的学习下,东西还是别人家的,毕竟大脑不是你的,所以很多东西都会坚持慢慢做一下总结,起码对得起自己哈。

大家都玩过一些网站,比如说淘宝,第一次登陆就不说了(同一台电脑上,不清楚缓存的情况下),有时候第二次登陆网站的时候,有时候就会发现不用输入用户名和密码,这就是用到了所谓的会话(Session)跟踪技术,常见的也就是Session和Cookie,而Session是分布在服务端,Cookie是分布在客户端的(比如浏览器中)

一.概念:

------------------------------------什么是cookie------------------------------------
cookie是保存在本地终端的数据

Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端会把Cookie保存起来。

当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。

1、cookie的内容主要包括:名字,值,过期时间,路径和域。路径与域一起构成cookie的作用范围。
a)Name 和 Value 属性由程序设定,默认值都是空引用。
b)Domain属性的默认值为当前URL的域名部分,不管发出这个cookie的页面在哪个目录下的。
c)Path属性的默认值是根目录,即 ”/” ,不管发出这个cookie的页面在哪个目录下的。可以由程序设置为一定的路径来进一步限制此cookie的作用范围。
d)Expires 属性,这个属性设置此Cookie 的过期日期和时间。
在这里插入图片描述
2.Path和Domain属性
–path:
–Domain:
? 我们可以把domain属性设置成“”, 并把path属性设置成“/”。
3.会话Cookie和持久Cookie

若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。这种生命期为浏览器会话期的cookie被称为会话cookie。会话cookie一般不存储在

硬盘上而是保存在内存里,当然这种行为并不是规范规定的。

若设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。存储在硬盘上的cookie可以在浏览器的不同进程间共享。

这种称为持久Cookie。

4.cookie不能 跨域
------------------------------------什么是session------------------------------------
Session主要是作为服务器端的缓存

每个用户访问服务器都会建立一个session,那服务器是怎么标识用户的唯一身份呢?事实上,用户与服务器建立连接的同时,服务器会自动为其分配一个SessionId。

1.session从哪里来

session主要是通过cookie将信息传过去,当一个用户提交了表单时,浏览器会将用户的SessionId自动附加在HTTP头信息中,(这是浏览器的自动功能,用户不会察觉到),当服务器处理完这个表单后,将结果返回给SessionId所对应的用户。

2.如何使用session
a)URL重写,就是把sessionId直接附加在URL路径的后面。
b)表单隐藏字段。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。比如:
3.Session共享(分布式)

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

5、所以个人建议:
将登陆信息等重要信息存放为SESSION
其他信息如果需要保留,可以放在COOKIE中

不知道为啥,写这篇文章好累

文章来源网络,版权归作者本人所有,如侵犯到原作者权益,请与我们联系删除或授权事宜
如果有误,请联系作者更改,谢谢,本人微信:void666666