有人可以给我一些关于不同情况下最好的阅读材料吗?
我想当你有一个没有很多用户的小网站时,你可以去参加会议,因为它们存储在服务器上。但对于更多的用户来说,最好使用cookies?他们如何在安全方面得分?
答案 0 :(得分:6)
会话管理分为两种方法 - 服务器端和客户端。 Cookie的使用将信任放在客户端,以及应用程序的物理状态管理部分。并非所有浏览器都支持cookie,用户可以根据自己的判断选择禁用cookie。这为许多开发人员提供了一个独特的障碍,因为他们无法完全依赖客户端系统来确保他们积极接受cookie。客户端可以随时杀死活动cookie。使用Cookie的好处在于它由客户端管理,可以在客户端系统上运行,用于跟踪对您网站的访问以及需要长时间保留的其他数据。
另一方面,会话是服务器端技术。它们由服务器主动管理,它们的状态分别与服务器一起生存和死亡。无论客户端系统如何,它们都是确保开发人员能够跨浏览器维护某种状态的好方法。由于Web场等概念,会话本质上可能更复杂,但可以通过选择适当类型的会话状态管理和存储来克服。使用会话的缺点是它们通常是短暂的,并且是为了管理对您网站的唯一访问而创建的,而不会长时间持续存在。
答案 1 :(得分:3)
会话几乎总是使用cookie将会话与用户相关联(尽管可以在查询字符串中传递字符串或在每个请求中形成数据)。
饼干:
会话没有。
但对于更多用户而言,最好使用Cookie?
如果您要存储 大量数据,那么您要么拥有一个微小的硬盘,要么超出了cookie大小限制......所以没有。
答案 2 :(得分:2)
我认为你应该在不同情况下使用它们,因为它们都有利有弊。 会话中最大的一点是会话在浏览器关闭时经常被破坏。另一方面,Cookies不容易被破坏。 会话几乎总是支持Cookie,并不总是支持Cookie。
它们都不安全。据我所知,cookie使用稍微多一点的性能。在客户端存储数据的更安全(更安全且不安全)的方法是通过将会话信息验证到保存在数据库中的哈希。在数据库中存储带有哈希的会话ID。并查阅它。下次。如果你真的想要安全。使用令牌,并在每次查询信息时生成一个新令牌。
所以我必须做出这样的决定。如果必须为多个浏览器会话存储信息。使用cookies。但是,如果您只需要保存几个页面开关的信息,只需使用会话。
编辑:好吧,我在我的apache服务器上运行它并跟踪RAM和CPU活动。 (没有显着结果)另外,我检查了服务器设置和取消设置1000个变量(包含30个字符长的字符串)到会话和Cookies的时间。所有测试都进行了几次并取得平均值。结果。结果如下。
COOKIES
Set: 0.001863 seconds.
Unset: 0.004932 seconds.
SESSIONS:
Set: 0.000494 seconds. (very consistent results)
Unset: 0.000502 seconds. (Again very consistent)
因此会话速度更快,更一致。如果你能够使用会话。我肯定会参加会议。