Session与Cookie

  • Post author:
  • Post category:其他




Session与Cookie



(一)什么是Session

服务器为了保存用户状态而创建的一个特殊的对象。



(二)什么是Cookie

其实cookies是由网络服务器存储在你电脑硬盘上的一个txt类型的小文件,它和你的网络浏览行为有关,所以存储在你电脑上的cookies就好像你的一张身份证,你电脑上的cookies和其他电脑上的cookies是不一样的;cookies不能被视作代码执行,也不能成为病毒,所以它对你基本无害。



(三)Session和Cookie的区别与联系

  1. session是存放在服务器上的,cookie是存放在用户的客户端上的
  2. session比cookie更安全
  3. session如果过多会对服务器的性能造成影响,因此,重要的数据一般放在session中,不重要的数据放在cookie中
  4. cookie存放的数据是有大小限制的不超过3k
  5. cookie与session存放都是有时间限制的



(四)案例场景


在生活中,我们经常碰到这样的情况:

当你第一次登录一个网站的时候,你需要输入密码或是手机验证码才能登录,但是当你再打开这个网站的时候就不需要输入密码了(在一段时间内),如果你很长时间不登录这个网站,你会发现你又要重新输入密码了;又或者是你清理了浏览器的缓存(包括cookies),那么即使你刚刚登录完这个网站,再次进入这个网站时,你还需要输入密码登录。


这是怎么回事呢?

原来,在第一次登录的时候(登录的过程实质就是你用你的浏览器访问服务器的过程),服务器会创建一个session对象,session对象会有一个唯一的sessionId,而这个sessionId会保存在你自己电脑的cookie中;

当你再次访问这个网站的时候,发送请求的时候,会自动带上你的cookies(包括sessionId)如果你的cookie还没有过期,你就不需要输入密码直接登录了。

但是如果你的cookies过期了,或者你清理了缓存(包括cookies),那么你就又要重新输入密码了。


扩展与延申

有些爬虫就是利用cookie的方式伪装登录,比如:你想要爬取某个网站的图片,但是这个网站却需要登录才能下载图片,你自然可以人工登录一个一个图片下载,但是你也可以利用爬虫一个for循环全部爬取下来(我全都要),但是要登录,怎么办呢?可以先用账号登录这个网站,此时,你电脑上就有个sessionid,分析本地的cookies获取sessionid,然后你就可以伪装成登录的样子去爬取了。当然现在很多网站都有反爬虫的机制,实现起来有难度就是了。



(五)优点与弊端

优点:

好处显而易见了,他会使生活更加方便,同时,cookie不仅仅用于存储sessionid,同时还可以存储你的喜好,比如你去视频网站看视频,登录发送请求的时候也会发送你的个人喜好,这样你首页推荐的信息也会根据你个人的喜好产生。

缺点:

这也会泄露我们的个人隐私,在你用网络访问的网站的时候,你的每一次鼠标的点击都会被记录下来(为了更好的商品推荐等等),细思极恐。



版权声明:本文为shaxu123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。