Php 如果是';有可能吗?

Php 如果是';有可能吗?,php,cookies,Php,Cookies,检索用户的cookie并获取其作为PHP变量的值是否比检索会话变量慢?我相信除了会话来自磁盘之外,情况大致相同。另外,会话也来自cookies 从安全角度来看,您真的希望在客户端存储信息吗?通常情况下,我不会将东西存储在客户端。不。从纯技术角度讲,可能恰恰相反,因为初始化会话会有一点小开销 不管发生什么情况,Cookie数据都会作为HTTP请求的一部分进入,默认情况下PHP会将其读入$\u Cookie。所以它总是在那里$_会话要求您在某个时候调用SESSION\u start() 但是,两者之

检索用户的cookie并获取其作为PHP变量的值是否比检索会话变量慢?

我相信除了会话来自磁盘之外,情况大致相同。另外,会话也来自cookies


从安全角度来看,您真的希望在客户端存储信息吗?通常情况下,我不会将东西存储在客户端。

不。从纯技术角度讲,可能恰恰相反,因为初始化会话会有一点小开销

不管发生什么情况,Cookie数据都会作为HTTP请求的一部分进入,默认情况下PHP会将其读入$\u Cookie。所以它总是在那里$_会话要求您在某个时候调用
SESSION\u start()


但是,两者之间的性能差异将非常小,不值得担心。

默认情况下,会话已经由名为
phpsessionid
的cookie支持(因此服务器能够识别客户端并将其与服务器内存中的一个会话关联),所以你的担心实际上毫无意义


使用
$\u SESSION
比用“自定义cookie”重新创建它更容易。

一般来说,您不应该担心会话变量或cookie的检索速度

但是,您应该了解它们之间的差异:

  • 会话存储在服务器上,这意味着客户端无法访问您存储的有关会话的信息。存储在服务器上的会话数据不需要随每页一起完整传输;客户端只需要发送一个ID,然后从服务器加载数据

  • 另一方面,Cookies存储在客户机上。它们可以经久耐用,并且当您拥有一个web服务器集群时,可以让您更顺利地工作。然而,与会话不同的是,存储在cookie中的数据在每次页面请求时都会完整传输


在某些浏览器中,无法存储cookie,为了避免此问题,您可以使用GET和POST方法传递SID(会话id)或一些隐藏的、填充的文本框值,而不是cookie

虽然从代码操作的角度来看大致相当,但cookie和会话变量是完全不同的

Cookie存储在浏览器中,并随每个请求一起传输到web服务器。如果在用户浏览器中存储大cookie或大量小cookie,则会增加每个请求/响应的大小,这会使每次点击更昂贵(带宽)和更慢(时间)。此外,存储在cookie中的任何内容对客户端都是可见的,因此避免将任何敏感内容存储在cookie中

另一方面,会话变量有自己的问题集。因为它们存储在服务器上下文中,所以它们不会在集群服务器之间传播。如果服务器/服务重置或用户会话超时,则会话[]集合中存储的内容将丢失。在会话变量中存储大数据会导致服务器性能下降,如果流量过大,性能会变得非常糟糕。会话变量需要cookie,服务器使用cookie标识用户的会话。用户可以通过修改cookie来访问存储在其他会话中的数据,尽管这对于任何类型的值来说都非常困难,因为会话ID是随机的、无意义的伪ID

最终,所有这些垃圾都应该存储在数据库中。会话是一种惰性的便利,在开发任何健壮的应用程序时都应该避免。cookie的使用应该尽量少——通常,我在cookie中存储一个guid,这有助于识别用户(类似于sessionID cookie,但特定于应用程序),但其他所有内容都在数据库中。这为您提供了与服务器无关的数据可用性、安全存储、由应用程序而不是服务器配置设置的数据生存期、良好的查询和报告能力等


如果做得好,数据库很容易。您收集的任何状态信息都应该存储在数据库中,这有很多原因,而且没有什么好的理由to.

PHP中的session变量不是普通cookie的奇特抽象。这完全取决于“自定义cookie”的用途。但是,他的问题并不是这样表述的。听起来不错,不管怎样我都会使用会话,但我想在我的cookie中添加更多内容,但有一次我的经历很糟糕,是javascript使用cookie,而不是PHP,我的PHP页面会加载,然后JS会读取一个cookie,并根据cookie数据对页面上某些项目的位置进行排序,这会在页面加载上大大降低页面速度,但事实并非如此。Cookie会在页面生命周期之外导致性能下降-在处理页面之前读取Cookie,并在发送响应时写入Cookie。会话变量会在服务器中引发命中,对循环的请求/响应部分没有影响,只是在页面呈现时间上。这些是苹果和橙子。+1表示“存储在Cookies中的数据随每个页面请求一起完整传输”。。。还有可能是每一个图像、脚本和样式表请求。这就是为什么要将设置的cookie大小保持在最小值。如果您有大量数据,请将其存储在服务器端,并将其从一个小得多的ID cookie中键入。为什么不在cookie中存储一个ID,然后从数据库中检索该ID的相关信息呢?首先,Cookies的主要用途不是性能,而是持久性和服务器无关性。这将是一项非常繁琐和乏味的工作。如果用户想要返回域,会发生什么?如果用户在GET请求的情况下修改URL会发生什么?如果用户更改URL中的sid,这就像更改cookie(t