• cookie与session的区别


    一、什么cookie?以及cookie的由来

    故名思意,cookie就是我们曾今吃过的小饼干。但是我这里的cookie不是指库奇牌儿饼干,而是网络编程中的一门技术。

    由于http协议是一种无状态保存的超文本传输协议,因此用户登录网站后,无法保存登录状态,需要携带用户信息去访问。

    为了解决这个问题,就产生了cookie技术。

    二、cookie的工作原理

    用户登录xx官网,浏览器发送一个封装了名为cookie空字典的请求给服务器,服务器验证通过,

    响应一个封装了名为cookie的字典的响应给浏览器,这个字典中包含了登录的用户名、密码和登录成功的状态码。

    当用户再一次去访问这个xx官网时,浏览器发送一个携带这个名为cookie字典的request请求,

    服务器收到这个请求验证,验证通过后直接响应登录成功的首页给浏览器。

    三、session的由来

    cookie的劣势:

    1、由于cookie中登录状态和用户名密码是存放在浏览器中数据不安全。

    2、cookie本身最大支持存储空间是4096字节

    因此诞生了session技术,弥补cookie的缺陷。

    四、session的工作原理

    用户登录xx官网,浏览器发送一个封装了名为cookie的空字典的请求,服务器接收这个请求后,进行登录验证,验证成功后,随机生成一个字符串作为session-key的值存放在Django-session表中,并且将用户的用户名密码以键值对的形式作为session-data的值存储在Django-session表中。同时将这个随机生成的session-key的值赋值给cookie的字典中sessionid,存储在浏览器中。当第二次访问官网时,发请求时携带这个cookie,根据它的sessionid的值匹配,找到django-session表中session-data中的值,进行验证。然后返回一个登录成功的页面。这样就通过了session技术完成了一次无需登录的访问。

    五、cookie与session的区别

    1、数据存放的位置不同。cookie的数据是存在浏览器中,session的数据是存放在服务器中。

    2、安全程度不同。相对而言,session更安全。

    3、性能使用程度不同:session保存在服务器上,当访问增多,会比较占用服务器的资源,考虑到减轻服务器性能方面,应当使用cookie。

    4、数据存储大小不同:单个cookie保存的数据不能超过4kb,大部分浏览器最多保存20个cookie,而session则存储在服务器的数据库中,基本不用考虑存储空间够不够的问题。

    5、回话机制不同:session是一种服务端会话机制,它使用类似哈希表的结构来保存信息。

    cookie是服务器存储在本地计算机上的小块文本。浏览器按照HTTP协议将cookie发送到服务端,浏览器解析服务端传输过来的cookie,并且将其保存在本地文件中。

  • 相关阅读:
    QT 小总结
    Qt Creator 中,如何更改h,cpp,ui的文件并不让ui失效
    设计模式全方面练习(1)
    设计模式 笔记 模版方法模式 Template Method
    设计模式 笔记 策略模式 Strategy
    设计模式 笔记 状态模式 State
    设计模式 笔记 观察者模式 Observer
    effective c++ 笔记 (49-52)
    设计模式 笔记 备忘录模式 Memento
    设计模式 笔记 中介者模式 Mediator
  • 原文地址:https://www.cnblogs.com/youhongliang/p/12116461.html
Copyright © 2020-2023  润新知