web安全:
SQL注入:
由于用户输入一些不安全的数据。
防范:白名单与黑名单,转义,过滤。
CSRF(跨站请求伪造):
通过模拟cookie信息,进行恶意请求
防范:验证码,token
XSS攻击:
用户输入javascript代码,过滤处理
DDOS攻击:
对服务器短时间内大量请求,造成服务器挂掉宕机。
缓存:
使用缓存场景:
复杂开销大的计算,降低后端负载
加速请求响应
缓存更新策略:
算法剔除
memcache:LRU清除最近最少使用的
redis:设置最大可用内存,内存不够时,淘汰策略
超时剔除:
设置有效期
主动更新:
利用消息系统或其他的方式通知缓存更新
最佳实践:
设置缓存最大内存值,超时剔除加主动更新主动使用
缓存穿透(缓存命中率):
当我们从缓存服务器获取一个一定不存在的值,由于缓存不命中,就会去存储层查找,然而存储层也查不到数据,
所以就造成每次都会去请求存储层。
缓存雪崩:
当我们的cache层由于某些原因整体crash掉了,也就意味着所有的请求直接到达了storage层。
缓存无底洞:
分布式多次网络IO时间
缓存粒度:
缓存部分数据与全部数据
正向代理与反向代理:
正向代理隐藏的了真实的请求客户端,服务端不知道真实的客户端是谁,客户端的请求的服务无忧代理服务器代替来请求。
反向代理隐藏了真实的服务端,当我们请求www.baidu.com时候,背后可能有成千上万台服务器为我们服务,但具体是那一台,你
不知道,也不需要知道,你只需要知道反向代理服务器是谁就好了,www.baidu.com就是我们的反向代理服务器。反向代理服务器
会帮我们把请求转发到真实的服务器那里去,Nginx就是性能非常好的反向代理服务器,做负载均衡。
正向代理服务器与代理客户端不在同一个局域网内,而反向代理正好相反。
请求发起方会知道正向代理的存在,但不知道反向代理的存在。
正向代理是直接转发被代理方的请求,反向代理是转发用户访问我们服务器的请求,也就是转发请求给被代理方
CDN:就近取得所需内容。
CDN是构建在网络上的内容分发网络,依靠部署在各地的边缘服务器。
通过中心平台的负载均衡,内容分发,调度等功能模块,使用户就近取得所需内容,降低网络拥塞,提高用户访问速度。
CDN关键技术主要是内容存储和分发技术。
大流量处理:
查看当前网站是否支持当前的流量
硬件升级,服务器集群,负载均衡,分布式,CDN,页面静态化,缓存技术
数据库优化
分表,读写分离,主从复制,SQL优化。
禁止盗链,控制大文件的上传与下载。
使用流量软件进行监控。
高并发处理:
页面静态化,SOL优化,分区,分表,缓存,主从复制,读写分离。
PHP工作原理:
client
->web serve
->fast-cgi
->php-fpm
|
client
->web server
->fast-cgi
->php-fpm