哪个最好将AJAX调用中的PHP var传递给另一个页面:POST还是通过会话?

时间:2009-01-08 17:11:28

标签: php ajax session post

在我正在构建的PHP站点中,我使用Prototype AJAX调用来解决其他一些php页面。这个名为php的页面需要一个在第一页上作为SESSION var存在的变量(从某种意义上说它在整个页面中被多次使用)。

它比其他任何东西都更好奇,但是:如果有的话,最好通过我们变量的两种方式:

  • 在被调用的页面上,启动会话并从那里获取所需的var,或
  • 在AJAX调用中,将会话var作为POST参数传递

所以,我很好奇,如果在页面之间传递POST var有更高的'成本',而不是从会话中获取var(添加session_start()等)。

4 个答案:

答案 0 :(得分:3)

如果该值没有安全问题,请通过GET或POST方法传递。只有当该值存在一些安全问题时,如果用户要更改值(通过代理或注入),则可能是一个严重的问题,然后使用SESSION。

答案 1 :(得分:0)

使用POST方法可以很容易地对服务器进行群集,因为在服务器端记住的状态较少,但代价是向客户端发送可能敏感的数据。

使用Session方法,服务器和客户端之间的带宽传递较少,但在多个前端Web服务器上扩展的难度较大。

答案 2 :(得分:0)

我会说使用会话。
您已经承受了在请求标头中发送会话ID的开销,因此您也可以使用它。虽然说它不是一个巨大的开销,但也没有发布少量数据 为了发布数据,您需要在客户端提供数据,如果这是您在客户端获得数据的唯一原因,那么您就会因为欺骗而不必要地打开。
如果你正在使用会话,那么负载平衡服务器的可扩展性如果证明是一个问题,则无论如何都必须处理。 因此,如果您的会话正在运行,请使用它们。

答案 3 :(得分:0)

我实际上正在寻找你的问题的答案。

这是我发现的: 如果变量位于第一页的Session上,这意味着您无法在“ajax called”页面上调用session_start()。 除非有一些解决方法我不知道?