命名cookie-最佳做法


106

Cookie名称应是什么样?

他们应该是:

  • 小写
  • 骆驼香烟盒
  • Underscore_Camel_Case
  • UPPER_CASE

还是应该别的东西?


1
好问题!如果我还剩下票的话,会投票赞成。
Pekka 2010年

1
@Pekka:我为你投票。我也会投票,但只能投票一次:(
查理·布朗

2
@Bran,我为您投票,因为无论如何我在几分钟内就获得了新的选票。哦,但我也要投票给我……天哪,达尼特。
Tor Valamo 2010年

1
谢谢雅各!这使我们向前迈进了一步。您没有打算通过任何方式对这个问题进行投票,对吗?因为如果您这样做了,我们将需要另一个志愿者!
Pekka '01

1
以防万一,我不会。所以,这是我为你们+1。:)
Hilton Perantunes

Answers:



8

请记住,此Cookie随每个请求一起发送,因此恕我直言,请使用您可以使用的最小名称,并很好地记录您的代码。


4

它应该避免与您可能使用的任意_GET和_POST参数命名冲突,因为_REQUEST包装了所有三个全局数组(!),优先级取决于php.ini中variables_order设置的方式。换句话说,如果您有一个名为“ x”的_COOKIE和一个名为“ x”的查询字符串参数,并且要求$ _REQUEST [“ x”],则当您需要/期望GET参数时,将获得cookie值。如果您的Cookie的作用域是网站根目录“ /”,而不是使用它们的文件夹,则这尤其成问题。

所以我说两个最佳实践:

  1. 确保将Cookie的范围限制为读写路径(setcookie()方法的第三个参数可以做到这一点)
  2. 为您的Cookie提供某种特定于Cookie的命名约定。我建议使用反向网站,例如java命名空间,然后使用“。”。{appname}。“。” {。是“ bar bar bar bar bar barann”,应该是“ com.testsite.foo.barBarBarBarBarBarBarBarann”

3
您是否在实时网站上看到了其中一些做法?
Emanuil Rusev

0

我使用该项目要求的任何编码标准样式。

通常,我更喜欢使用camelCase作为命名方案,但是我付钱的人之一。


0

也许您不喜欢我的答案:

不要使用自己的Cookie,而是将数据存储在服务器会话中。因此,您只需要一个cookie(用于引用会话ID),以及您的命名方式都不起作用。


9
这对于负载均衡器来说变得很混乱,因为届时会话应该存储在不在同一主机(甚至可能在同一数据中心)上的数据库中。有时,cookie很好。
dotancohen

1
@dotancohen您可以提供一些与您描述的问题有关的链接吗?谢谢!
Sharky 2014年

1
“不要使用cookie”听起来有点纯粹。但我确实喜欢这种为用户保持清洁的尝试。
Parapluie

无需任何服务器端会话存储即可安全地使用securecookie。它们不必很大(实际上有4k的限制是相当适中的),并且避免了负载平衡器和/或集中式DB查找。
colm.anseo,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.