前后端分离用户身份状态保持的思考

发表于:2019-01-07 17:01:21

1.废话连篇的前言 一直以来我都是做传统WEB开发的,这些年的开发经验,对于传统WEB开发应该来说还算得心应手。最近由于客户的需求,需要做微信小程序的开发,刚开始觉得真没有什么,不就是前后端分离加上一个“新皮肤”(UI)而已吗,有什么大不了的?可是做着做着就发现了与传统的WEB开发有着一个本质的区别,我操!用户的状态信息该怎么保存呢?以前默认的Session会话管理彻底算是废了,后端的开放接口是无状态的!这时候我就在思考该使用一个什么样的机制来实现后端开放接口的用户身份状态的保持。 其实结合Session的原理我们可以知道,传统的WEB开发,在保持用户状态的时候,使用的是Session ID实现的:在浏览器第一次请求的时候给其生成一个Session ID(放在Cookie里),然后浏览器再在接下来的每一次请求中带上这个Session ID传给后端,而后端再根据这个Session ID检索对...

阅读(1k+)评论(1)

HTTP协议之Transfer-Encoding

发表于:2018-09-07 18:26:05

说明 HTTP/1.1 200 OK Server: openresty/1.13.6.2 Date: Fri, 07 Sep 2018 10:17:06 GMT Content-Type: text/html;charset=UTF-8 Transfer-Encoding: chunked Connection: close Transfer-Encoding: chunked说明是分块传输编码。 分块传输编码(Chunked transfer encoding)是超文本传输协议(HTTP)中的一种数据传输机制,允许HTTP由网页服务器发送给客户端应用( 通常是网页浏览器)的数据可以分成多个部分。分块传输编码只在HTTP协议1.1版本(HTTP/1.1)中提供。 格式 图片来源:https://my.oschina.net/ososchina/blog/666761 伪代码 length...

阅读(842)评论(0)

PHP SOAP的使用总结

发表于:2018-08-23 14:23:39

PHP使用SOAP协议调用接口,需要安装soap模块插件,在使用之前使用phpinfo()方法输出判断安装的PHP是否已安装了该插件。 确认安装了后,下面来介绍几种常见的soap调用形式。 普通调用 使用soap插件极大的方便了php的soap调用,如下使用腾讯开放的查询QQ号是否在线的普通的soap调用: $url = "http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl"; $client = new SoapClient($url); $params = array( "qqCode"=> "8698053" ); $result = $client->qqCheckOnline($params); print_r($result);...

阅读(1k+)评论(0)

PHP敏感词过滤DFA算法实现

发表于:2018-08-09 16:59:28

使用PHP借助DFA算法实现敏感词过滤功能,参照了zenghansen的代码,其中修改了原类的BUG,并增加了查找方法,并对王*八&&蛋这样的,中间填充了无意义的字符来混淆的词的增强匹配处理。 DFA敏感词过滤的原理就是将所有的敏感词载中内存,构建一个个树结构,然后将待匹配的字符串截断成数组,匹配每个数组元素与构建的敏感字典树的节点,匹配得到终节点就说明匹配成功。 对应PHP实现代码如下: <?php /** * 敏感词过滤工具类DFA算法 * * @author zenghansen http://www.cnblogs.com/zenghansen/p/5688995.html */ class SensitiveWordsUtils { private $dict; public function __construct($words) { $this->...

阅读(1k+)评论(0)

PHP 7 编译问题集

发表于:2016-04-06 18:41:01

编译PHP make 时出现错误 make: *** \[ext/fileinfo/libmagic/apprentice.lo\] Error 1 解决办法: 这是由于内存小于1G所导致. 在./configure加上选项: --disable-fileinfo 链接: http://nbaiwan.blog.51cto.com/6286161/1425200 其它: CentOS 6 在编译安装PHP mcrypt库:libmcrypt-devel时,提示找不到libmcrypt-devel包: 可以添加RPM包源: rpm -ivh "http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm" 或 rpm -ivh "http://packages.sw.be/rpmf...

阅读(2k+)评论(0)

Linux下手动安装PHP扩展模块

发表于:2015-10-16 04:20:59

有时候在开发PHP时,需要在Linux服务器端,安装第三方自定义的二进制动态链接库so扩展摸块文件,作为使用yum或apt-get命令习惯了的Linux小菜来说确实很有挑战。 折腾了很久,也查了很多资料,终于一知半解,成功安装了一个插件,故而将其过程记录下来,以备下次参考。 1.找准位置 在安装PHP的扩展模块之前,首先要做的就是要找准PHP各配置文件,库文件,日志的存放位置;幸好PHP为我们提供了一个配置详情一览函数phpinfo() 根据这个函数的输出,我们可以知道一切。 以CentOS为例,输出结果如下: 依据上面的信息就可以知道我们第三方库应该放到哪,这里可知是:/usr/lib64/php 注:Scan this dir for additional .ini files,这一项通过编译PHP使用--with-config-file-scan-dir指定。 2.安装动...

阅读(16k+)评论(0)

Magento多文件上传代码功能实现

发表于:2015-03-19 01:49:09

前言 在Magento中上传单个文件很简单,可以直接在继承的Mage_Adminhtml_Block_Widget_Form类中直接添加如下组件Field: 对于图片: $fieldset->addField('test_pic', 'image', array( 'label' => "标签", 'name' => 'test_pic', )); 对于文件: $fieldset->addField('test_file', 'file', array( 'label' => "标签", 'name' => 'test_file', )); 处理时只需在对应后台的控制器action中使用Varien_File_Uploader工具类来进行获取。 但这个组件只能处理单文件上传,那么对于多文件上传该怎么做呢?通过观察原Magento功能可知,只有在商品的编...

阅读(3k+)评论(0)

7篇文章, 共1页