zoukankan      html  css  js  c++  java
  • cookies和session

    1,简单说说Cookie是什么吧,为什么需要Cookie

    Cookie 是一小段文本信息,伴随着用户请求在 Web 服务器和浏览器之间传递。Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息。

    2,为什么需要Cookie? 因为HTTP协议是无状态的,对于一个浏览器发出的多次请求,WEB服务器无法区分 是不是来源于同一个浏览器。所以,需要额外的数据用于维护会话。 Cookie 正是这样的一段随HTTP请求一起被传递的额外数据。

    1,session 是一个抽象概念,开发者为了实现中断和继续等操作,将 user agent 和 server 之间一对一的交互,抽象为“会话”,进而衍生出“会话状态”,也就是 session 的概念。

    2,而 cookie 是一个实际存在的东西,http 协议中定义在 header 中的字段。可以认为是 session 的一种后端无状态实现。

    3,cookie保存在客户端,session保存在服务器端,Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中;
    Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。

    4,第一次创建Session的时候,服务端会在HTTP协议中告诉客户端,需要在 Cookie 里面记录一个Session ID,以后每次请求把这个会话ID发送到服务器,

    链接:https://www.nowcoder.com/questionTerminal/20d99243797f41db8c9d8674248e69ff
    来源:牛客网

    优点: 极高的扩展性和可用性

    1) 数据持久性

    2) 不需要任何服务器资源。 Cookie 存储在客户端并在发送后由服务器读取。

    3) 可配置到期规则。 控制 cookie 的生命期,使之不会永远有效。偷盗者很可能拿到一个过期的 cookie 。

    4) 简单性。 基于文本的轻量结构。

    5) 通过良好的编程,控制保存在 cookie 中的 session 对象的大小。

    6) 通过加密和安全传输技术( SSL ),减少 cookie 被破解的可能性。

    7) 只在 cookie 中存放不敏感数据,即使被盗也不会有重大损失。


    缺点:

    1) Cookie 数量和长度的限制

    数量:每个域的 cookie 总数有限。

    a) IE6 或更低版本最多 20 个 cookie

    b) IE7 和之后的版本最后可以有 50 个 cookie

    c) Firefox 最多 50 个 cookie

    d) chrome 和 Safari 没有做硬性限制

    长度:每个 cookie 长度不超过 4KB ( 4096B ),否则会被截掉。

    2) 潜在的安全风险 。 Cookie 可能被拦截、篡改。如果 cookie 被拦截,就有可能取得所有的 session 信息。

    3) 用户配置为禁用 。有些用户禁用了浏览器或客户端设备接受 cookie 的能力,因此限制了这一功能。

    4) 有些状态不可能保存在客户端 。例如,为了防止重复提交表单,我们需要在服务器端保存一个计数器。如果我们把这个计数器保存在客户端,那么它起不到任何作用。

  • 相关阅读:
    架构之道(1)
    看板管理(1)
    交互原型图
    Sequence Diagram时序图
    安卓项目的「轻」架构
    安卓ButtomBar实现方法
    工具类BitMap 把网络URL图片转换成BitMap
    使用OkHttp上传图片到服务器
    BaseAdapter教程(2) BaseAdapter的notifyDataSetChanged动态刷新
    开发中时间变换问题汇总
  • 原文地址:https://www.cnblogs.com/vhyc/p/9449530.html
Copyright © 2011-2022 走看看