命名 cookie - 最佳实践 [关闭]
Posted
技术标签:
【中文标题】命名 cookie - 最佳实践 [关闭]【英文标题】:Naming cookies - best practices [closed] 【发布时间】:2011-01-07 01:23:27 【问题描述】:cookie 名称应该是什么样的?
他们应该是:
小写 驼峰式 Underscore_Camel_Case UPPER_CASE或者他们应该是别的什么?
【问题讨论】:
好问题!如果我还有选票,我会投票赞成。 @Pekka:我为你投票。我也会投票,但只能投票一次:( @Bran,我为你投了赞成票,因为无论如何我都会在几分钟内获得新的选票。哦,但我也会投票给这个……天哪。 感谢雅各布!这使我们向前迈进了一步。你不打算对这个问题投赞成票,对吗?因为如果你这样做了,我们将需要另一个志愿者! 以防万一,我不会。所以,这是我给你们的+1。 :) 【参考方案1】:appname_meaningfulname
【讨论】:
@Emanuil:将其与同一域上其他应用程序生成的所有其他 cookie 区分开来。 @Emanuil Rusev,浏览器插件有时会设置 cookie。当我的网站获取 cookie 并获取用户插件设置的数据而不是我的网站设置的数据时,我刚刚学到了这一点。【参考方案2】:我使用项目编码标准要求的任何风格。
一般来说,我更喜欢camelCase 命名方案,但无论谁买单,我都会选择。
【讨论】:
【参考方案3】:也许你不会喜欢我的回答:
不要使用您自己的 cookie,而是将数据存储在服务器会话中。因此,您只需要一个 cookie(用于引用会话 id)以及您如何命名它没有任何作用。
【讨论】:
负载均衡器会变得混乱,因为会话应该存储在不在同一主机(甚至可能是同一数据中心)上的数据库中。有时 cookie 也很好。 @dotancohen 你能提供一些关于你描述的问题的链接吗?谢谢! “不要使用 cookie” 听起来有点拘谨;但我确实喜欢这种为用户保持清洁的尝试。 securecookies 可以安全使用,无需任何服务器端会话存储。它们不必很大(实际上有 4k 的限制,这是相当适中的),并且避免了负载平衡器和/或集中式数据库查找。 这太棒了。数据库中保存了很多东西,我没有看到很多人抱怨这一点【参考方案4】:请记住,这个 cookie 会随每个请求一起发送,所以恕我直言,请尽可能使用最小的名称,并妥善记录您的代码。
【讨论】:
【参考方案5】:它应该避免与您可能使用的任意 _GET 和 _POST 参数发生命名冲突,因为 _REQUEST 包装了所有三个全局数组 (!),优先级取决于您在 php.ini 中设置 variables_order 的方式。换句话说,如果您有一个名为“x”的 _COOKIE 和一个名为“x”的查询字符串参数,并且您要求 $_REQUEST["x"],那么当您可能需要/期望 GET 参数时,您将获得 cookie 值。如果您的 cookie 的范围仅限于您的网站根目录“/”,而不是使用它们的文件夹,则这尤其成问题。
所以我说,两个最佳实践:
-
确保将 cookie 的范围限制为读取和写入它们的路径,(setcookie() 方法的第三个参数执行此操作)
为您的 cookie 提供某种特定于 cookie 的命名约定。我建议反向网站,如 java 命名空间,然后是 ".".appname.".".friendly cookie name camel cased 所以,如果你的网站是 www.testsite.com,你的应用是 foo,你的变量是“bar bar bar bar bar barann”,它会是“com.testsite.foo.barBarBarBarBarBarBarann”
【讨论】:
您在现场网站中看到过这些做法吗?以上是关于命名 cookie - 最佳实践 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章