web初衷:请求解析资源
ajax不能跨域(换域名,浏览器限制)
jsonp利用页面加载script实现跨域(页面元素被认为是静态资源,没有跨域限制)
特殊元素(只get):script交互性强,必执行;img安全上报(1*1像素点,访问统计);iframe嵌入
长链接,Content-Length错误,服务器会一直等待消息主体发完
后台结构调整:
动静分离(静态请求磁盘IO大,动态请求CPU占用高)
静态请求-CDN-反向代理-源文件
图片只新增,文本压缩,反向代理作缓存(squid/nginx,在图片服务器前加反向代理只请求本地不存在的图片),服务器选择(nginx/lighttpd,作为图片服务器比apache快20%),CDN(运营商全国部机器,BD自建CDN)
动态请求-逻辑分离-压力分散-缓冲/缓存-数据存储
适当服务器结构:nginx+fast cgi+eaccelerator/apc
解决IO瓶颈:memcache,异步化写入(mq,redis,解决并发写入量很大的过程),数据库读写分离,sql优化
分散压力(DNS/LVS/GLSB/CDN):会话易丢失,生效时间长,无权重概念
逻辑调整优化:合并请求,避免实时计算,需求调整
数据存储:
读写分离不适合写多读少(拆库)、强一致性、从库太多
分表分库:水平切分(id,时间,类型)、垂直切分(数据性质,登录用户和密码单独存在ssd上)
读出缓存,写入缓冲:一致性,写入缓冲队列挂(操作日志挂)
适度冗余:避免频繁表链接
no-sql:
数据安全:
静态存储多副本:
nfs+rsync
开源:MFS/DFS
BD内部:NFS/BOS
DB主从热备,定时冷备
热备不能恢复误操作
访问控制:
内部平台不对外开放
权限管理
操作日志
IP白名单
多IDC
php/C++/python