DNS
DNS 是「域名系统」的缩写,是 ip 和域名的分布式映射数据库。
- ip 记录内容
-
- A:Adress,本域名指向的 ip 地址,可以有多个
- NS:Name Server,下一级域名信息的服务器地址
- MX:Mail eXchange,电子邮件接收地址
- CNAME:返回另一个域名
- PRT:Pointer Record,只用于 ip 地址查询域名
递归 DNS
- local DNS / 路由器 DNS / 代理商 DNS
- 发出 DNS 时被这几层代理查询,同时寻找自己的缓存和 TTL,命中则直接返回。
智能 DNS / CDN
迭代查询到授权服务域名层时,如果该域名配置了 CDN 内容分发服务,一般会 CNAME 到专门用于分配服务节点的服务器,此服务器考虑多个因素后返回一个最合适的服务节点,虚拟服务器。考虑的内容一般有节点是否能处理此请求,节点的忙碌程度,节点的链接延迟。
协议
- 1XX 请继续
- 2XX 成功
- 3XX 重定向,304 not modified 未修改适应缓存。
- 4XX 错误,403 拒绝坏请求
- 5XX 服务器内部错误
协议缓存
- 强缓存
-
- Expires http1.0 之前使用,GMT 时间串,过期前命中
- cache control http1.1,优先级比前者高
-
-
- max-age 资源有效期
- no-cache 不使用强缓存
- no-store 不使用所有缓存
- public 允许所有端缓存
- private 不允许代理服务器缓存
-
- 协商缓存
-
- Last-Modify & If-Modify-Since : 服务器返回资源带有 Last-Modify 表示资源更新时间,客户端请求时带有 If-Modify-Since 表示缓存文件的更新时间,服务器对比成功返回 304
- Etag & If-Node-Match :文件唯一识别码,客户端请求时带有 If-Node-Match。解决了周期性变回上一个文件或短时间更新多次的 bug。
网络模型
- 物理层:光线等,电信号表示0、1
- 数据链路层:确定0、1的分组方式,生成数据帧
- 网络层:IP、MAC地址,引入一套地址,区分主机地址,所属子网络在公网上的地址,链接主机到主机
- 传输层:TCP 等,链接端口到端口的通信,建立应用程序之间的通信
- 应用层:http、ssh 等,将数据包内容解析用于应用程序交互
三次握手
- seq 、 ack :客户端服务端报文号; ACK、SYN:相应标志和新消息标志。
攻击
XSS:注入代码
CSRF:窃取 cookie、token