天天看点

session与cookie

因为算是总结,尽量用自己的白话去叙述,也可能比较简短。

cookie

一般在清空浏览器的浏览记录里会有选项让你确认是否删除cookie,从这点可以方便的分析出cookie是储存在我们自己电脑上的,也就是存储在客户端的。

cookie有什么用呢?举个很常见的例子,比如你天天都要登OJ刷几道题,有时候浏览器会让你确认是否保存cookie,当你确认后,后来再访问OJ时,就不用再输账号密码了,就可以直接登录进去了。

cookie是以文本格式保存在客户端的,当你下次再访问服务端时,浏览器会将储存在你本地上的该网址的cookie交给服务端,服务端便可以接收到这些cookie信息。

cookie是可以设置过期时间的,一般来说不设置的话,cookie保存在内存里,当你关闭浏览器后,当前该cookie便消失了。设置过期时间,cookie就保存在磁盘里,直到时间过期为止,否则下次访问服务端时cookie还会因为未到过期时间发送到服务端。

cookie也不是非常安全的,因为cookie容易被其他人截获。故cookie更适合存储不隐私的数据。

session

一般用户在访问天猫等网站后,进行购买跳转页面,服务端还是能够知道你是谁,不会因为并发访问而乱,他是一个会话,储存在服务端的,用户与服务端建立连接后,服务端总是能够唯一标识各个用户。

因为session保存在服务端,故只是暂时的建立联系,如果用户关闭网站,那么session就会关闭,网站也就不能访问该session了,每个session都有sessionid作为唯一标识来区分各个用户。

每次服务端和客户端建立连接时,就会请求创建一个session,若sessionid已有,则说明创建过,就会直接用这个sessionid,没有的话就会新创一个。

因为session是保存在服务端的,服务端如果保存太多session也会非常占资源。session相对cookie来说较为安全,cookie容易被其他人截获,若他人利用你个人的cookie去提交给服务器,就会冒充你个人去登录网站,而session一直保存在服务端,相对来说更安全。故session可以存储相对来说较隐私的数据。

继续阅读