什么是Coldfusion会议?

时间:2009-12-11 17:58:18

标签: session cookies coldfusion

我已经使用了Coldfusion会话很长一段时间,所以我知道它们是如何使用,但现在我需要知道它们如何工作,这样我才能计划扩展我的网站。

Coldfusion用户'会话'只是设置2个cookie(CFTOKEN和CFID)和相关服务器端内存结构的快速方法吗? (SESSION范围)它还有什么其他的吗?我正在尝试确定与用户会话相关的开销与其他方法(如cookie)。

4 个答案:

答案 0 :(得分:10)

您对它们的理解基​​本上是正确的。虽然他们没有绑定cookie。 Cookie是令牌的记录。如果在浏览器中未启用cookie,则该标记可以在url字符串中传递。

我认为在会话中保存事物而不是cookie有两个主要优点:

  1. 您可以控制会话范围。如果没有为它们提供接口,人们就无法编辑会话范围中的数据。 Cookie可以由客户修改。
  2. 可以在那里存储结构,数组,对象,网络会话(FTP,交换)等复杂数据。
  3. 他们的内存开销“低”但这是一个相对术语。使用ColdFusion管理服务器监视器深入了解会话实际使用的内存量。

答案 1 :(得分:2)

首先,Session是范围:保持当前用户属性(如权限或首选项)的安全有效方式。不确定你在“其他方法”中的含义是什么,但我怀疑你是否能够在cookie中保存复杂的数据结构(查询,对象,数组)。

其次,应用服务器为您提供了专门用于会话的非常方便的事件处理程序:onSessionStart()和onSessionEnd()。

第三,会话可以非常容易地共享和聚集:在CF应用程序之间或CF和J2EE之间。

答案 2 :(得分:2)

会话是在jvm内存中的特定应用程序空间内分配的每用户内存空间。这两个cookie是指向该内存空间(的标记)的指针。是的,使用会话(RAM,交换空间等)会产生开销,但除非你在会话范围内推送大量数据,否则它应该不会那么糟糕。

答案 3 :(得分:2)

未提及的会话的一个方面是它们具有生命周期:默认为20分钟(不活动)。此生命周期可以由应用程序设置,但永远不会超过ColdFusion Administrator中设置的限制。

如果考虑使用内存,则可以减少时间限制,但仍有很多时间取决于Java垃圾回收。