欢迎造访本博客置顶

发表于:2013-01-20 08:42:45

2016-03-02更新:本站已转为VPS,Heroku云免费的太慢,收费的太贵~ 本站点是基于Heroku云平台建立的轻巧型个人博客,纯属自娱自乐。 其实在早些时候,就一直有编写一个自己的个人博客的想法,但由于种种原因而搁浅,一方面是由于早些时候个人的技术还不过关,另一方面就是没有找到免费且服务器稳定的空间提供商。直到去年实习学习RUBY的时候在网页上知道了HEROKU这个平台,渐而燃起了希望。 一直有人问我为什么对做博客这样的感兴趣,CSDN,博客园,开源中国等不是提供了现成的了吗?我想说的是,作为一个程序员如果连一个完全属于自己的博客都没有是一件很遗憾的事,那些现成的博客不能正真让你感觉那个博客就是你的,因为出于一些安全考虑会有很多的限制。 最初本来打算使用RUBY来做的,而且也己经做成了一个初步的版本,但由于HEORKU上提供的RAILS框架是3.0以上的,而我学习使用的是2.3...

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

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...

阅读(51)评论(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);...

阅读(153)评论(0)

ContextLoaderListener对比DispatcherServlet

发表于:2018-08-22 20:56:57

原文:https://howtodoinjava.com/spring-mvc/contextloaderlistener-vs-dispatcherservlet/ 作者:Lokesh Gupta,于2018年5月10日。 在基于XML配置的Spring MVC中,你肯定看到了在web.xml文件声明的这两项:ContextLoaderListener与DispatcherServlet。接下来就来让我们看一下他们在框架中的作用及差异。 根上下文与子上下文 在阅读之前,必须理解如下内容: Spring中可以有多个上下文,但只有一个根上下文,其他的都是子上下文。 子上下文可以访问根上下文中定义声明的Bean,但反之不尽然,根上下文是不能访问子上下文的Bean的。 DispatcherServlet - 子应用上下文 DispatcherServlet本质上就是一个Servlet(它继承自H...

阅读(139)评论(0)

Iptables防火墙基础命令手札

发表于:2018-08-11 21:27:12

主要关于iptables防火墙的相关命令笔记: 转发80端口请求到9000 iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 9000 查看防火墙状态 iptables -L -n -v 查看服务器所有开放的端口列表,及被使用的程序的详细命令 netstat -nlp 结合 ps -x 列出所有PID对应的程序,说明端口占用的程序 查看防火墙5432端口被使用的程序 lsof -i:5432 关闭端口3306端口,只允许本地访问 iptables -A INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT iptables -A INPUT -p tcp --dport 3306 -j DROP 删除对应防火墙规则 iptables...

阅读(171)评论(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->...

阅读(172)评论(0)

在Eclipse IDE下使用Maven-手册

发表于:2018-08-05 18:25:34

原文:Using Maven within the Eclipse IDE - Tutorial 原作者:Lars Vogel, Simon Scholz, (c) 2016 vogella 有限公司,版本 1.4,2016,05,29 该手册介绍在Eclipse IDE下使用Maven开发Java程序。 1. 使用Maven在Eclipse IDE Eclipse IDE为Maven提供了很好的支持,这个工具是在M2Eclipse项目中开发的。 这个工具管理项目依赖,和更新Eclipse IDE中项目依赖项的类路径,它确保Ecipse IDE下Maven的流畅使用。该工具还提供不同类型的向导导入和创建基于Maven的新项目。 它提供了一个编辑器,通过结构化的界面来管理Maven的配置文件pom.xml,你也可以选择pom.xml的选项卡直接编辑XML数据。 2. 在Eclipse中安装和...

阅读(247)评论(0)

Websocket整合登录XMPP的思考

发表于:2018-07-30 17:39:45

在上一篇文章里面提到过,由于websocket使用的是类socket方式与xmpp服务进行交互,因此没有办法像bosh那样在web后台先登录成功后,然后利用返回的sid和rid进行会话还原。那现在就是要思考使用websocket的前端怎么实现用户在web上登录成功了,websocket登录xmpp服务器也一并成功呢?而且还要实现用户切换刷新web页面,xmpp会话不掉线呢? 最初我想的是,是否要重新自定义xmpp的SASL身份验证协议或修改websocket流程?后来参考OAuth2.0协议,想到的是是否可以给登录成功的web用户发行token,然后xmpp的SASL的身份验证采用这个发行的token来进行验证登录呢?结合openfire 4.2.3我做了一下实践,效果还算不错。具体时序图如下: xmpp身份验证SASL协议,使用的是DIGEST-MD5方式验证,由于由web端控制toke...

阅读(388)评论(0)

简述XMPP WEB登录

发表于:2018-07-22 19:50:19

前言 XMPP在WEB浏览器端,可以使用两种方式进行登录,一种是流行的HTML5 websocket方式,还有一种是适合传统浏览器的BOSH(半轮询AJAX)的方式,两种方式的步骤结构都是一样的,只是发送的XML稍有差别。由于BOSH方式使用的是AJAX半轮询方式,而且通过HTTP交互是无状态的,为了保持每次与服务端通讯的会话session,因此发送的XML数据包,在BOSH方式传输过程中,使用<body>标签包裹,<body>标签有两个重要的属性,一个是sid:表示会话session的id;还有一个是rid:表示每一次请求的request id,且request id每一次都是在上一次的rid的基础上加1,因此需特别的注意。而websocket方式是浏览器端的类socket方式,一旦与服务器端连接成功后,就一直存在,是有状态的,因此不需要额外的session i...

阅读(357)评论(0)

JSP去空格

发表于:2018-06-15 12:24:39

在使用JSP动态生成HTML时,由于JSP的标签操作,因此生成的HTML会有很多多余的空行,这样多余的空格会占用一定的网络带宽,同时也使生成的HTML很不美观,那有什么办法可以去除这些空格呢? 1.对于Tomcat 5.5+的可以在Tomcat的安装目录conf/web.xml中配置如下: <init-param> <param-name>trimSpaces</param-name> <param-value>true</param-value> </init-param> 2.JSP 2.1+版本的可以在JSP中使用如下标签: <%@ page trimDirectiveWhitespaces="true" %> 另外对于支持Servlet XSD 2.5+,也可以在web程序的WEB-INFO/we...

阅读(540)评论(0)

MySQL max_allowed_packet问题

发表于:2018-06-14 16:03:13

在使用大的BOLB二进制数据导入MySQL数据库时,发生了Got a packet bigger than 'max_allowed_packet的错误,查询了一下说是要设置MySQL数据库的max_allowed_packet值。 找到MySQL的官网,Packet Too Large一节,按照如上介绍设置得以解决,故摘录如下: MySQL的通信packet包可以是发送给MySQL服务器的单独的SQL语句,也可以是单独的行数据发送给客户端,也可能是主服务器发送给从服务器大的日志文件。 当一个MySQL的客户端或者mysqld服务端接收的包大于max_allowed_packet设置的字节数,则会触发一个NET_PACKET_TOO_LARGE的错误,并关闭数据连接,同样的在客户端,如果通信包过大,你将会得到一个Lost connection to MySQL server during...

阅读(276)评论(0)

一株绿萝

发表于:2017-05-18 09:52:35

去年9月份,也就是2016年9月的时候,在公司发现座位旁边的绿萝的新枝长到了座位边上,我怕离开座位走动的时候,将它不小心踏死,就将这新长的一枝茎叶折了下来,找了个空瓶子,放了点自来水,就这样子养了起来: 通过查了下绿萝的相关百科,说没有出根的情况下,每一两天换一次水,待生根了后,就十几天二十天换一次,按照这样的频率,我点期的给它换水,直到现在发现它真的长的还不错,期间还经历了春节十几天的无人看护: 对比一下,不得不感叹绿萝顽强的生命力!

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

记事一篇-20170513

发表于:2017-05-13 15:19:59

抱着体验的心态去参加了下开源中国的上海源创会,只听了一个上午,讲的是大数据方向的事,介绍了下几款开源的软件的特点,但没有讲解技术细节,感觉营养不是很大,所以就和朋友只听了个上午就撤了,门票是每个人五十块,妹子免费! 由于时间充裕,本打算和朋友去市中心方向去玩的,谁知道我方向导航弄反了,于是顺路去参观了下上海复旦大学江湾校区,发现校区里风景很美,学习氛围也很浓。 好的学习氛围确实很能激发人的学习的冲动. 今天IT界还发生了一起很大的安全事故,就是“永恒之蓝”的是蠕虫病毒感染了多个国家的电脑,而国内感染的大多数都是校园网,这种病毒会将电脑数据加密,而恢复解密需要支付比特币。 2017年05月13日

阅读(977)评论(0)

Vmware Linux系统磁盘空间扩展

发表于:2016-12-27 15:48:54

在使用VM创建使用Linux服务器系统的过程中,会发现磁盘空间不够用的情况,这时候就需要通过VM来重新调整系统的分区,如下介绍了如何在Linux通过命令来扩展根分区大小: 首先,先将VM中的Linux系统关机,然后使用VM的设备管理,设置给当前的Linux系统磁盘扩容: 接着启动Linux,进入终端,使用命令对磁盘进行分区。 在分区之前,查看当前系统各挂载点的使用情况,使用df -h命令: 如上发现我们的/根挂载点使用已经满了。 接着使用执行fdisk –l命令,查看硬盘分区情况,检查VM是否扩容成功: 执行发现/dev/sda这块磁盘,有40G,两个分区,分别是18.9G的根分区和2G的交换分区,也就是说VM扩容后的20G还是空白未使用的状态。 现在就使用fdisk /dev/sda命令来进行磁盘的分区,如下可以使用m命令来查看帮助: 接着参照如下方式,添加新的主分区,由于1和2都使用...

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

MySQL多实例配置

发表于:2016-12-13 15:47:51

使用一独立的服务器运行一个MySQL实列,住住会发现,MySQL服务器的硬件利用率很低;因此有时候会考虑在一台独立的服务器上,运行多个MySQL实例,以不同的端口号运行,实现服务器利用的最大化;下面就个人在实际开发中,配置多MySQL实例的的过程做一个简单的讲解(本人开发环境 为CentOS 6.4)。 第一步,使用yum包管理工具安装mysql server: sudo yum install mysql-server mysql-client 第二步,创建两个mysql实例的数据存放目录,并赋给对应的mysql用户: sudo mkdir /var/lib/mysql1 sudo mkdir /var/lib/mysql2 sudo chown mysql:mysql /var/lib/mysql1 sudo chown mysql:mysql /var/lib/mysql2 第三步...

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

48篇文章, 共4页