什么是JWT?JWT全称是JSON Web Token,这是一个开放的RFC7519标准,它定义了在两者之间使用JSON安全传输数据的准则。传输的数据是可信的,并且是可验证的,因为数据已经添加了数字签名。签名可以用密钥或者是RSA密钥对签名。有什么特性呢?体积比较小,可以作为URL,POST数据等的参数,也可以放在HTTP头里面传输。另一方面,小意味着传输比较快。里面包含的信息都是可以直接拿来用的,避免了去数据库查询。什么时候应该使用JWT?典型场景:身份验证:这个是JWT最常用的场景了。一旦用户登录,之后的请求都需要带上JWT信息,验证通过之后才能访问授权的资源。比如单点登录,手机APP接口等。信息交换:因为JWT的数据是签名之后的数据,这样可以保证安全。JWT的数据结构由三部分组成,每一个部分是用点(.)分割的:Header(头);Payload(数据);Signature(签名)。所以,典型的JWT数据格式看起来像这样:xxxxx.yyyyy.zzzzz;Header头部包含两部分,token的类型,固定的JWT;哈希的算法,比如HMAC SHA256或者RSA。一般hash25...
 发布日期: 2017-07-29    分类: 其他    浏览量: 869   0条评论  
在理论篇我们基本了解了DNS的整个协议原理,但是可能还会有着下面的疑问:为什么我想申请的域名都没了?DNS 域名还要备案,这是为什么啊?如何将刚申请的域名绑定到自己的网站呢?怎么才能看到那些在背后默默给我解析的域名服务器呢?他们说用一个什么文件就可以访问好多好多不存在的网站,是真的吗?可信任的域名服务器是怎么一回事,难道有些域名服务器会做坏事?怎么知道我现在用的域名服务器有没有使坏呢?……我不准备一个一个地去回答这些问题,不过相信我,读完本文,对于上面问题的答案你会有一个清晰的认识,并且可以解决其他各种各样关于 DNS 方面的问题。域名注册、绑定首先明确一点,每个人都可以去注册域名。大多数时候我们希望去注册一个顶级域名(比如selfboot.cn, google.com等),那些二级域名毕竟不够好记(比如github托管博客的域名:username.github.io)。有的顶级域名(比如.tk域名)提供免费的一年域名试用,不过绝大多时候还是要为自己的域名付费的(一般是按年付费,也不是很贵)。要想去注册域名,首先得找到域名注册商,国内的比较著名的有DNSpod等,国外的有godaddy...
 发布日期: 2017-03-01    分类: 其他    浏览量: 1397   0条评论  
对于 DNS(Domain Name System) 大家肯定不陌生,不就是用来将一个网站的域名转换为对应的IP吗。当我们发现可以上QQ但不能浏览网页时,我们会想到可能是域名服务器挂掉了;当我们用别人提供的hosts文件浏览到一个“不存在”的网页时,我们会了解到域名解析系统的脆弱。然而关于DNS还有一大堆故事值得我们去倾听,去思考。DNS 源起要想访问网络上的一台计算机,我们必须要知道它的IP地址,但是这些地址(比如243.185.187.39)只是一串数字,没有规律,因此我们很难记住。并且如果一台计算机变更IP后,它必须通知所有的人。显然,直接使用IP地址是一个愚蠢的方案。于是人们想出了一个替代的方法,即为每一台计算机起一个名字,然后建立计算机名字到地址的一个映射关系。我们访问计算机的名字,剩下的名字到地址的转换过程则由计算机自动完成。hosts映射早期,名字到地址的转换过程十分简单。每台计算机保存一个hosts文件,里面列出所有计算机名字和对应的IP地址,然后定期从一个维护此文件的站点更新里面的记录。当我们访问某个计算机名字时,先在hosts文件找到对应的IP,然后就可以建立连接。...
 发布日期: 2017-03-01    分类: 其他    浏览量: 1440   0条评论  
之前不一小心把Ubuntu16.10所有软件的apt-get配置给删了,然后就把系统给重新装了一遍。想一下以后如果要再次重装系统的话,配置服务器这些有点繁琐,然后就想了下,web服务都用docker来运行。docker基础用法,看起来还挺简单的,但是在我实际的使用中,按照自己的想法去部署服务的时候还是遇到了一些书上没说的细节问题。这些细节问题,进行不下去时候,那么我先去搜索,搜索不到再去发帖,这样有时候会在一个小点上面卡主好几天。看到这里,我当然都把这些问题一一解决了。我这里的架构是Nginx+MySQL+PHP的。一开始我是想用Dockerfile文件,把它们三个全都放到一个镜像里面取,一开始的Dockerfile内容如下:FROM ubuntu:latest RUN apt-get update RUN apt-get install -y mysql-server nginx php-fpm php-mcrypt EXPOSE 80 443 CMD ["/etc/init.d/nginx", "start"]当我build的时候,遇到的第一个问题就是,安装MySQL的时候,会弹出...
 发布日期: 2017-01-21    分类: 其他    浏览量: 4061   0条评论  
默认是有个JsonResponseFormatter的,但是呢,我们如果做APP的API的话,json响应的格式和内容,每个人的约定都是有差异的,不可能和yii2默认的相一致。之前通过搜索搜索到的答案是,给Response对象的EVENT_BEFORE_SEN事件注册一个处理函数,在发送结果之前再处理一下。原文链接:https://github.com/yiisoft/yii2/blob/master/docs/guide-zh-CN/rest-error-handling.md主要代码如下:return [     // ...     'components' => [         'response' => [             'class' => 'yii\web\Response',             'on beforeSend' => function ($event) {                 $response = $event->sender;                 if ($response-&g...
 发布日期: 2016-12-15    分类: PHP    浏览量: 1589   0条评论  
msyql遇到事务等待锁超时(error code:1205)的情况。了解下mysql锁的东西,文章是别人的。http://hedengcheng.com/?p=771顺便截个图...
 发布日期: 2016-09-19    分类: MySQL    浏览量: 1218   0条评论  
算是对MySQL官方文档对JSON数据类型描述的一个笔记吧!官方介绍在这里:http://dev.mysql.com/doc/refman/5.7/en/json.html。从MySQL 5.7.8开始,MySQL新增了对JSON数据结构的原生支持。JSON数据类型相对于存储JSON格式的字符串的一些优势:1、JSON列会自动验证格式的正确性,错误的JSON会报错。2、优化的存储格式。存储的JSON文档会转换成一个内部的格式,以提供对文档元素的快速访问,当需要访问JSON的某个值得时候,不需要从一个文本里面去解析出这个值。这个二进制结构允许直接查找子对象或者通过key查找嵌套的值,或者是在不需要读取整个数组的情况下查找数组索引。JSON数据类型的最大存储大小是通过系统变量max_allowed_packet来限制的。JSON列不可以有默认值。JSON列不可以被索引。这个限制可以通过生成虚拟列的方法解决,链接:http://dev.mysql.com/doc/refman/5.7/en/create-table.html#create-table-secondary-indexes-vi...
 发布日期: 2016-08-02    分类: MySQL    浏览量: 2426   0条评论  
小计一笔,这里仅限是环境搭建的过程。搭了个LNMP的环境,估计很多同学最常遇到的就是502了吧?我搭了那么多次,就是502最多。我遇到的一般都出在用户的设置和目录权限的配置上面的,解决这两点一般就不会有什么问题了。配置nginx,新建了个用户组web,和用户webuser。改配置nginx.conf的user选项为user webuser。执行nginx -t报错:nginx: [emerg] getgrnam("webuser") failed in /etc/nginx/nginx.conf:1 nginx: configuration file /etc/nginx/nginx.conf test failed这什么意思啊?一番搜索之后好像没什么有用信息。原来是user www-data,而且系统里面有www-data组和www-data用户。所用猜测报错应该是说用户有问题。nginx检查配置正确性的时候肯定是按照同用户名的组去验证用户的,这里我只写了user webuser。webuser组下面确实没有webuser用户,改成user webuser web一切ok。nginx...
 发布日期: 2016-07-16    分类: 其他    浏览量: 1415   0条评论  
这服务器过期好久了,去后台看了,套餐都不见了,网站竟然还在,还能访问,惊讶。难道是忘记清理了?哈。。。还是去买了个vps来搞搞,之前用的是虚拟主机。昨晚去linode买了个最低配置的主机,新加坡节点,今天起来就搭了个环境,把网站运行起来了。感觉速度还可以啊!嘿嘿!...
 发布日期: 2016-07-16    分类: 其他    浏览量: 1256   0条评论  
原文地址:http://www.innomysql.net/article/21730.htmlInside君整理了一份最新基于MySQL 5.6和5.7的配置文件模板,基本上可以说覆盖90%的调优选项,用户只需根据自己的服务器配置稍作修改即可,如InnoDB缓冲池的大小、IO能力(innodb_buffer_pool_size,innodb_io_capacity)。特别注意,这份配置文件不用修改,可以直接运行在MySQL 5.6和5.7的版本下,这里使用了小小的技巧,具体可看配置文件。如果配置参数存在问题,也可以及时反馈Inside君,我们一起成长。触发Inside君做这件事情的原因是大部分网络上的MySQL配置文件都非常非常古老,大多都是基于MySQL 5.1的版本,这导致了绝大部分MySQL并没有运行在最优的环境,从而导致一些错误的使用,亦或是灾难性事故的发生,比如数据丢失,主从数据不一致等。而这些问题早在5.6版本及以后的版本中得到了解决。最后,抛弃你那所谓的、陈旧的、错误的MySQL配置文件,面向一个崭新的高性能、高可靠、高可扩展MySQL时代,你要做的就是下载这份配置文件...
 发布日期: 2015-12-24    分类: MySQL    浏览量: 1142   0条评论