知识点
PHP
PHP代码安全
- 防止xss攻击
htmlspecialchars处理输出的变量,可防止xss攻击 - 防止sql注入
addslashes 向字符串中预定义字符添加反斜杠,防止sql注入。
sql语句预编译也可避免SQL注入。PHP中PDO第三方库中有封装好的方法。 - 防止csrf攻击
使用token标记来源,防止冒充cookie恶意访问网站
PHP设计模式
PHP7新特性-被问到过
PHP魔法函数列举
- __construct()
实例化对象时被调用,当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用。 - __destruct()
当删除一个对象或对象操作终止时被调用。 - __call()
对象调用某个方法, 若方法存在,则直接调用; 若不存在,则会去调用__call函数。 - __get()
读取一个对象的属性时, 若属性存在,则直接返回属性值; 若不存在,则会调用__get函数。 - __set()
设置一个对象的属性时, 若属性存在,则直接赋值; 若不存在,则会调用__set函数。 - __toString()
打印一个对象的时被调用。如echo $obj;或print $obj; - __clone()
克隆对象时被调用。如: t = n e w T e s t ( ) ; t=new Test(); t=newTest();t1=clone $t; - __sleep()
serialize之前被调用。若对象比较大,想删减一点东东再序列化,可考虑一下此函数。 - __wakeup()
unserialize时被调用,做些对象的初始化工作。 - __isset()
检测一个对象的属性是否存在时被调用。如:isset($c->name)。 - __unset()
unset一个对象的属性时被调用。如:unset($c->name)。 - __autoload()
实例化一个对象时,如果对应的类不存在,则该方法被调用。
手写算法
- 冒泡排序
- 快速排序
- 字符串、数组操作
socket编程
-
网络编程——分为server端和client端
server端
– socket函数创建一个listenfd(listenfd是指客户端连接本机时的fd,是用来和客户端通信用的)
– bind函数绑定端口号连接
– listen函数端口监听,
– 死循环中accept函数接受信息
client端
– socket发送请求就可以 -
rpc远程连接调用应用场景
不通语言之间接口通信
方便调用
MySQL
MyISAM与InnoDB区别
知识点:
- MyISAM只支持表锁,InnoDB可以支持行锁。
- MyISAM不支持事务,InnoDB支持事务。
- MyISAM不支持外键,InnoDB支持外键。
- MyISAM会直接存储总行数,InnoDB则不会,需要按行扫描。
1分钟了解MyISAM与InnoDB的索引差异
会使索引失效的操作
- 隐式转换——比如字符串字段查询时候没加引号
- 对索引字段操作—— NOT IN、<>、!= (但<,<=,=,>,>=,BETWEEN,IN是可以用到索引的)和 数学运算、复杂函数处理,例如left() FROM_UNIXTIME()不能
- like 语句后第一有效字符如果是%号索引会失效,like ‘%aaa%’不会使用索引,like ‘aaa%’可以使用索引
- 列中包含有null值,会使索引失效
- or 连接的两个字段必须都为索引列,否则查询不会应用索引。
联合索引注意点
最左原则,假如新建联合索引 a-b-c,单独查询a或者a-b顺序可以使用索引,b-c的时候不能使用索引,应用左边全部字段可以使用索引。
字段选取
- char varchar
- 手机号类型存储
- 时间类型存储
锁,隔离机制,索引原理,缓存相关——MySQL汇总
Linux
https原理
http常见状态码及意义
码类型 | 类别 | 原因短语 |
---|---|---|
1XX | Information(信息性状态码) | 接受的请求正在处理 |
2XX | Success(成功状态码) | 请求正常处理完毕 |
3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 |
4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 |
5XX | Server(服务器处理请求出错) Error | 服务器处理请求出错 |
具体:
状态码 | 含义 |
---|---|
200 | 成功 |
301 | 永久重定向 |
302 | 临时重定向 |
401 | Unauthorized(用户未授权,当浏览器初次接收到401状态码时,弹出认证用的对话窗口) |
403 | 目录无访问权限 |
404 | 页面未找到 |
500 | Internal Server Error(服务器代码错误啥的) |
502 | bad Gateway(PHP代码错误啥的) |
503 | Service Unavailable(服务器暂时处于超负载或正在进行停机维护) |
504 | Getaway Timeout (网关超时,是代理服务器等待应用服务器响应时的超时) |
常用命令
ps netstat telnet awk xargs top du df cut free top
netstat命令 ps命令 telnet命令
linux sed命令 awk命令 xargs命令
top du df cut free top 这几个没记笔记,被问到过
常用的端口对应的服务
redis
数据类型及使用场景
加锁防止高并发,原理