zoukankan      html  css  js  c++  java
  • session与cookie的区别与联系

    ---以下来自知乎-----

    1.session 在服务器端,cookie在客户端(浏览器)

    2.session 默认被存在服务器的一个文件里(不是内存)

    3.session 的运行依赖session id,而session id是存在cookie中的,也就是说,如果浏览器禁用了cookie,同时session也会失效(但是可以通过其他方式实现,比如在url中传递session_id)

    4.session 可以放在 文件,数据库,或内存中都可以。

    5.用户验证场合一般会用session

    维持一个会话的核心就是客户端的唯一标识,即session id

    cookie目的可以跟踪会话,也可以保存用户喜好或者保存用户名密码

    session用来跟踪会话

    ---以下来自网址---

    https://segmentfault.com/a/1190000007243675

    • Cookie 就是浏览器储存在用户电脑上的一小段文本文件

    • Cookie 是纯文本格式,不包含任何可执行的代码

    • Cookie 由键值对构成,由分号和空格隔开

    • Cookie 虽然是存储在浏览器,但是通常由服务器端进行设置

    • Cookie 的大小限制在 4kb 左右

    --以下来自网址----

    http://mertensming.github.io/2016/10/19/cookie-session/

    cookie 虽然很方便,但是使用 cookie 有两个的弊端:

    1. cookie 中的所有数据在客户端就可以被修改。这就意味着数据非常容易被伪造,一些重要的数据就不能存放在 cookie 中
    2. 而且如果 cookie 中数据字段太多会影响传输效率。

    session 是如何工作的?

    为了解决这些问题,就产生了 session,那么 session 又是怎样工作的呢?

    1. 每个 session 都对应一个 session_id,通过 session_id 可以查询到对应的 session
    2. session_id 通常是存放在客户端的 cookie 中,服务端存好 session 之后将对应的 session_id 设置在 cookie 中发送给客户端
    3. 当请求到来时,服务端检查 cookie 中保存的 session_id 并通过这个 session_id 与服务器端的 session 关联起来,进行数据的保存和修改

    这意思就是说,当你浏览一个网页时,服务端随机产生一个很长的字符串,然后存在你 cookie 中。当你下次访问时,cookie 会带有这个字符串,然后浏览器就知道你是上次访问过的某某某,然后从服务器的存储中取出上次记录在你身上的数据。由于字符串是随机产生的,而且位数足够多,所以也不担心有人能够伪造。

  • 相关阅读:
    textarea回车在多浏览器兼容问题
    windows server平台移动oracle表空间
    奇妙的英文recreate,reproduce,regenerate也不同
    《Inside the C++ Object Model》笔记(1~7章)
    1.4买书问题C#源码
    C#的Compiler Error CS1660
    数学符号表
    C#工程添加了DLL编译运行时却提示”无法加载DLL“的解决方案
    看源代码那些事【转】
    救命的软件,查看你关掉的网站内容
  • 原文地址:https://www.cnblogs.com/xiaozhijing/p/7883758.html
Copyright © 2011-2022 走看看