Cookie与Session机制,以及scrapy中cookiejar的理解

来源:互联网 发布:c数据库入门经典 编辑:程序博客网 时间:2024/06/06 12:26
  1. Http协议
    http是一种无状态协议。先说什么是协议,说白了就是通讯过程中的一种规范,要求。那什么是无状态的呢?就是我们在向服务器请求一个页面的过程中,并不是一个持久性的连接,而是客户端发送一个请求,比方说,我打开腾讯网,然后服务器端返回给我一个http响应。这是一次http过程。
    但是举个烂便网络的例子,比方说我们要购物,网页需要记录购物信息,单纯的http请求和响应是不足以完成这个功能,因为它并不是一次持久性连接。所以有了Cookie和Session
  2. Cookies机制
    最开始对cookies的理解不够深刻,但是我想到了初中的时候去学习跆拳道,我们道馆是这样,报名后会发给你一张记次卡,注意,是最原始的记次卡,比方说我报名半年三十次课程,就在卡的背后画一个3×10的表格,然后每次上课需要带着卡,然后课后,教练会在卡上打上钩。
    把这个运用到对cookies的理解上就是我打开一个页面的时候,服务器会给我一个卡片,这个卡片上面有着我的信息,以及我的记录。这样我才允许你继续访问我这里。
    cookie描述过程

    但是这样会有一个问题,比方说啊,我交了钱,办了卡,但是数据在我这里,增加了不安全性,我完全可以换一张卡去增加课程次数,或者别人用我的卡去上课(当然这在现实当中不太可能,毕竟教练眼睛没问题),于是有了session机制

  3. Session机制
    Session的英文意思是会话,然后也举一个例子,我上大学的时候,有钱了,办了张理发卡,这个理发卡200元一张,然后20块钱理发一次,当然还有不同价位的。不过这个卡的品质要比跆拳道的记次卡要质量好很多,是一张金卡,卡上除了一个id,就是店的logo,所以每一次理发之后,我都要到店里面去查看我的消费记录。
    同样可以类比到http请求过程,但毕竟坑爹的是我在全网都没有找到一个确切的定义来定义Session,通俗理解就是会话,什么是会话呢,我的理解就是你在关闭浏览器(这个部分的定义不知道是否准确)之前的记录。而这个会话,会保存在服务器端,就像是我的理发信息保存在店里面一样。
    下面得说说session和cookies的联系
  4. Cookie与Session的区别与联系
    session
    咋联系,理发店给了我一张卡,卡上的id能够从店里面的理发系统里找到我的信息。其实这就是cookie-session机制的原理,如图所示,在我第一次Http请求过程后,服务器不仅返回了HTTP Response和设置了cookie,还在我的cookie中加入了一个sessionid,这是什么,这就是id号啊,当我再去理发的时候,即我再去请求的时候,我带着这个id,可以优惠打折,体验服务。
    传sessionid的方法:
    1. 给cookie头部
    2. 在cookie禁用的情况下,可以给url,信息暴露在外面不安全
    3. 3.
  5. scrapy中cookiejar的使用
    未完待续
原创粉丝点击