Heim > php教程 > php手册 > php中session跨域跨服务器的解决方案

php中session跨域跨服务器的解决方案

WBOY
Freigeben: 2016-06-06 19:57:29
Original
1306 Leute haben es durchsucht

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 php中session跨域跨服务器的解决方案:在网上查了一下,除了asp.net外,所有session的保留都必须借助session id。Session的保存位置众说风云,主要有:共享文件、数据库、memcache。因此主要的问题就

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

    php中session跨域跨服务器的解决方案:在网上查了一下,除了asp.net外,所有session的保留都必须借助session id。Session的保存位置众说风云,主要有:共享文件、数据库、memcache。因此主要的问题就集中在了session id的传递。

    Session id的传递主要有四个方法:

    1、通过cookie。

    2、设置php.ini中的session.use_trans_sid = 1或者编译时打开打开了--enable-trans-sid选项,让PHP自动跨页传递session id。

    3、手动通过url或隐藏表单传值。

    4、用文件或数据库方式传递,在通过其他key对应取值。

    以上的2和3其实使用的是同样的方法,只是途径不一样。

    通过以上的分析我们不难看出,通过cookie传递session id,将session存储于memcache服务器中是为一个比较合理的选择。当出现跨域的情况是,可以使用p3p跨域设置cookie。而当客户端禁用cookie的情况下,可以设置php.ini,通过url自动传递session id。

    以下我们以通行证为例,探讨其逻辑实现过程(视需求而定,而如果要保证接口的一致性,同时对其他服务器屏蔽session服务器,所有的登陆和获取session信息可以都通过登录服务器进行中转,不过这自然会有时间的延误和登录服务器宕机引起的全站瘫痪风险):

    包含服务和应用:登陆服务器,保存session的memcache服务器,应用服务器,公钥,密钥

    (1)、对于可信任服务器:

php中session跨域跨服务器的解决方案

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage