Html 什么是pro';Cookie与会话的优缺点?

Html 什么是pro';Cookie与会话的优缺点?,html,session,cookies,Html,Session,Cookies,有人能给我一些好的阅读材料,在不同的情况下什么是最好的吗 我想当你有一个用户不多的小网站时,你可以选择会话,因为它们存储在服务器上。但是对于更多的用户来说,使用cookies可能更好?他们在安全方面的得分是多少 会话几乎总是使用cookies将会话与用户关联(尽管可以在每个请求中传递查询字符串或表单数据中的字符串) 曲奇饼: 必须包含在每个HTTP请求中 对可以存储的数据量有限制 将存储的数据公开给用户(以及在不使用SSL的情况下可以嗅探其流量的任何人) 允许用户直接编辑数据 可以设置为持续一

有人能给我一些好的阅读材料,在不同的情况下什么是最好的吗


我想当你有一个用户不多的小网站时,你可以选择会话,因为它们存储在服务器上。但是对于更多的用户来说,使用cookies可能更好?他们在安全方面的得分是多少

会话几乎总是使用cookies将会话与用户关联(尽管可以在每个请求中传递查询字符串或表单数据中的字符串)

曲奇饼:

  • 必须包含在每个HTTP请求中
  • 对可以存储的数据量有限制
  • 将存储的数据公开给用户(以及在不使用SSL的情况下可以嗅探其流量的任何人)
  • 允许用户直接编辑数据
  • 可以设置为持续一段时间
会话不会

但是对于更多的用户来说,使用cookies可能更好


如果您要存储那么多数据,那么您要么拥有一个非常小的硬盘,要么您将超过cookie大小限制……因此,没有。

会话管理分为两种方法—服务器端和客户端。Cookie的使用将信任置于客户端以及应用程序的物理状态管理部分。并非所有浏览器都支持cookie,用户可以根据自己的判断选择启用或禁用cookie。这给许多开发人员带来了一个独特的障碍,因为他们不能完全依赖客户端系统来确保他们积极接受cookie。客户端可以随时杀死活动cookie。使用cookie的好处在于,cookie由客户机管理,可以在客户机系统上运行,用于跟踪对站点的访问以及需要长期保存的其他数据


另一方面,会话是服务器端技术。它们由服务器主动管理,它们的状态分别随服务器而生存和消亡。无论客户机系统如何,它们都是确保开发人员能够跨浏览器维护某种状态的好方法。由于诸如web场之类的概念,会话在本质上可能更复杂,但是可以通过选择适当类型的会话状态管理和存储来克服。使用会话的缺点是,它们通常是短暂的,创建它们是为了管理对站点的独特访问,而不会持续很长时间。

我认为您应该在不同的情况下使用它们,因为两者都有优点和缺点。 会话的最大缺点是,当浏览器关闭时,会话经常被破坏。另一方面,饼干也不会那么容易被破坏。 Cookie并不总是受支持,而会话几乎总是受支持

它们都不安全。据我所知,cookies使用的性能稍高一些。在客户端存储数据的一种更安全(不安全)的方法是将会话信息验证为保存在数据库中的哈希。将会话ID与哈希一起存储在数据库中。然后查一查。下一次。如果你真的想安全。使用令牌,并在每次查找信息时生成一个新的令牌

所以我不得不做出这样的决定。如果必须为多个浏览器会话存储信息。使用饼干。但是,如果您只需要为几个页面切换保存信息,只需使用会话即可

编辑:好吧,我在apache服务器上运行了它,并跟踪了RAM和CPU活动。(没有明显的结果)我还检查了服务器在会话和cookie中设置和取消设置1000个变量(包含30个字符长的字符串)所花费的时间。做了几次所有的测试,并取得了平均结果。以下是结果

COOKIES
  Set: 0.001863 seconds.
  Unset: 0.004932 seconds.

SESSIONS:
  Set: 0.000494 seconds. (very consistent results)
  Unset: 0.000502 seconds. (Again very consistent)

因此,会话速度要快得多,而且更加一致。如果您能够使用会话。我肯定会参加会议。

如果您在欧盟或欧盟以外的网站工作,但对欧盟公司来说,需要记住的一件事是,今年5月26日,新的cookie立法生效,这意味着未经用户同意,我们无法在cookie中存储数据。因此,这意味着添加一个条款和条件中的一行写着“我们将在您的计算机上存储一个cookie,以便您登录”?同样值得记住的是,尽管人们大喊“cookie法”,但它也不允许您使用其他方法跟踪用户(通过cookie跟踪的会话(99%以上)使用cookie)。此外,如果基本功能需要cookie,则您不需要权限(例如,他们将第一个项目添加到购物篮中,您可以启动会话并设置cookie来跟踪会话)。@Vincent-否。权限必须是明确的,而不是隐藏在没有人阅读的t&C中。伊亚纳尔,不过饼干还是有好处的。Cookie会保留预设的已知时间量,而会话不会。Cookie在连接之间持续存在,而会话则不会。我上面列出的许多事情(包括提到的持久性)并不是“缺点”,而是现实。根据上下文的不同,它们可能是可取的功能,也可能是不可取的功能。无需读取,在客户端保存数据永远都不安全。您可以通过检查服务器端的哈希值使其更安全,但数据操纵始终是可能的。是的,但是您将哈希值存储在何处以与会话/cookiedata中的哈希值进行比较?将它们存储到服务器端的数据库中。并将sessionid与数据库中的信息相匹配,以验证cookie/会话。我会在答案中加上这个。