JWT:Json Web Token,是基于 JSON 的一个公开规范,这个规范允许我们使用 JWT 在用户和服务器之间传递安全可靠的信息,他的两大使用场景是:认证和数据交换

使用:由服务端根据规范生成一个令牌(token),并且发放给客户端。此时客户端请求服务端的时候就可以携带者令牌,以令牌来证明自己的身份信息。

作用:保持登录状态 的办法,通过token来代表用户身份。

组成:JWT实际上就是一个字符串,它由三部分组成:头部、载荷与签名

头部:声明类型 和 声明加密的算法的JSON,然后进行base64加密的字符串

载荷:存放有效信息的地方的JSON,然后进行base64加密的字符串

签名:这个部分需要base64加密后的头部和载荷连接组成的字符串,然后通过头部中声明的加密方式进行加盐secret组合加密

优点:

1、jwt基于json,非常方便解析

2、可以再令牌中自定义丰富的内容,易扩展(payload可以扩展)

3、通过签名,让JWT防止被篡改,安全性高

4、资源服务使用JWT可不依赖认证服务即可完成授权

1.`HTTP` 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头

2.`HTTP` 是不安全的,而 HTTPS 是安全的

3.`HTTP` 标准端口是80 ,而 HTTPS 的标准端口是443

4.`在OSI` 网络模型中,HTTP工作于应用层,而HTTPS 的安全传输机制工作在传输层

5.`HTTP` 无法加密,而HTTPS 对传输的数据进行加密,安全性高于HTTP协议。

6.`HTTP`无需证书,而HTTPS 需要CA机构颁发的SSL证书,一般免费证书少,因而需要一定费用。

  • 首先,确认服务器硬件是否足够支持当前的流量
  • 其次,优化数据库访问。
  • 第三,禁止外部的盗链。
  • 第四,控制大文件的下载。
  • 第五,使用不同主机分流主要流量
  • 第六,使用流量分析统计软件
  • 第七,尽量使用静态页,缓存

1). mysql_query(“insert into user(name) values(‘test’)”); $id = mysql_insert_id(); mysql_query(“insert into score(uid,subjext,score) values(“.$id.”,’english’,’99’)”);

2). $sql = select uid,sunjext,score from score where uid=2 order by score desc limit 0,5;

3). select s.score from score s RIGHT JOIN user u ON u.id=s.uid where u.name=’张三;

4). delete from score where uid in(select id from user where name=’李四’);

delete from user where name=’李四’;

5). delete from score;

6). drop table user;

$link = mysql_connect("localhost", "root", "123") or die("数据库连接失败!");
mysql_select_db("db_test", $link) or die("选择数据库失败!");
$sql = "select id,name,age,gender,phone,email from friend where age>20";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
while ($row = mysql_fetch_assoc($result)) {
    echo $row['id'];
}
class myclass
{
    public $aaa;
    public $bbb;
    public function myfun()
    {
        echo "this is my function";
  }
}

$myclass = new myclass();
$myclass->$aaa;
$myclass->myfun();

smarty,thinkphp框架中的模板引擎

blade,laravel框架中的模板引擎

$arr = pathinfo(“/wwwroot/include/page.class.php”);

$str = substr($arr[‘basename’],strrpos($arr[‘basename’],’.’));

function day_count($year,$month){

echo date(“t”,strtotime($year.”-”.$month.”-1”));

}

serialize()和unserialize()在php手册上的解释是:

serialize — 产生一个可存储的值的表示,返回值为字符串,此字符串包含了表示 value 的字节流,不丢失其类型和结构,可以存储于任何地方。

unserialize — 从已存储的表示中创建 PHP 的值 具体用法:

$arr = array(“测试1″,”测试2″,”测试3″);//数组

$sarr = serialize($arr);//产生一个可存储的值(用于存储)

//用任意方法(例如:你要是吧$sarr存在一个文本文件中你就可以用file_get_contents取得)得到存储的值保存在$newarr中;

$unsarr=unserialize($newarr);//从已存储的表示中创建 PHP 的值