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