专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

PHP与NodeJS如何共用Session_PHP基础

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/5 15:13:38       共计:3598 浏览

PHP与NodeJS如何共用Session?

随着项目的发展,技术架构方案也是会慢慢演变的。比如说淘宝最早期是由单纯的PHP开发的站点,到现在单一架构模式已满足不了其发展需要,于是乎演变成了异构模式(即:多种技术的混合架构模式)。

现在市面上的开发语言众多,同一个产品线的多个子项目采用不同的编程语言开发也是很常见的。但对于不同语言开发的站点默认情况下Session是无法共用的,那么在异构模式下如何实现Session互通呢?下面给大家具体分析一下。

Session运行原理

要想弄清楚不同语言间的Session互通问题,我们就要先了解Session的实现机制原理是什么。

大家都知道,HTTP协议本身是无状态的,客户端每次发出的请求在服务器端看来都是独立的,服务器端也无法得知哪些请求是同一个用户发出的。在这种机制下,有些需要状态保持的场景(如登录)就存在一些问题,于是就有了Cookie和Session。

举个例子来帮助大家理解一下:

因为HTTP协议无状态的特性,如果服务器端要辨识用户请求就需要给用户发一个“通行证”,拿到通行证的用户每次请求服务器时都会把这个通行证带上,这样一来服务器就知道拿着这个通行证的用户发出了哪些请求。那服务器是不是看到用户的“通行证”就直接放行呢?自然不是,对于某些操作,服务器端也要验证用户的“通行证”是否和服务器端存储的“用户档案”对得上。在这里,服务器端存储的用户档案就是Session,档案上的用户唯一编号就是SessionID,用户的唯一编号也会作为用户“通行证”的一部分发放给用户存储(存储在浏览器Cookie中)。

总结来说,Cookie是为了解决HTTP协议无状态的缺陷而推出的,而Session是一种在客户端和服务器端保持状态的解决方案。

PHP与Node.js如何实现Session共用?

在这种异构模式下要实现Session共用,那就需要保证各自的SessionID是共用的,所以我给的解决方案如下:

1、PHP与Node.js客户端要保证存储SessionID的Cookie Name一致,如果Cookie的名称不统一也没关系,但要保证对于同一个客户的SessionID要一致。

2、服务器端的Session要集中到一处管理,这样PHP和Node.js都能获取到Session。比如说可以把Session存储在数据库中或者Redis中。

3、如果给Cookie作了加密,那要保证PHP与Node.js两端的加解密规则一致。

以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:forumphp手机怎么打开_PHP基础 | ·下一条:有没有比较好的net_PHP基础

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有