网络模型
HTTP
HTTP2.0
- 首部压缩
- 多路复用
- 请求优先级
- 服务器推送
- 二进制分帧
HTTPS
HTTPS协议 = HTTP协议 + SSL/TLS协议
【在 传输层 使用 非对称加密算法(密钥交换算法 - 签名算法 - 对称加密算法 - 摘要算法)】
- HTTP 的默认端口是 80,而 HTTPS 的默认端口是 443
HTTPS握手
TCP
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义
三次握手
确认双方的发送、接收能力是否正常
SYN(Synchronization,同步):发起连接
ACK(Acknowledgment,确认):确认连接
四次挥手
FIN(Finish):结束连接
seq(sequence number):序列号
ACK(Acknowledgment,确认):确认连接
如何保证可靠性传输
- 检验和
- 超时重传
- 拥塞控制
- 最大消息长度
- 滑动窗口控制
- 序列号/确认应答
TCP 和 UDP
| TCP | UDP | |
|---|---|---|
| 是否可靠 | √ | × |
| 是否可连接 | √ | × |
| 有无流量控制 | √(滑动窗口) | × |
| 有无拥塞控制 | √(慢开始、拥塞避免、快重传、快恢复) | × |
| 传输效率 | 高 | 低 |
| 报文的面向 | 字节流 | 报文(保留边界) |
| 双工性 | 全双工 | 一对一、一对多、多对一、多对多 |
CDN
Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。 关键技术:内容存储 分发技术
graph TD
发送请求-->智能DNS解析-->取得缓存服务器IP-->返回内容给用户-->向源站发起请求-->返回结果给用户-->将结果存入缓存服务器
优势:
- 本地Cache加速,提高企业站点访问速度
- 远程访问用户根据DNS负载均衡技术智能自动选择Cache服务器
- 跨运营商的网络加速,保证不同网络的用户都得到良好的访问质量
- 广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵
- 自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点web服务器负载等功能
状态码
(1xx临时响应 2xx成功 3xx已重定向 4xx请求错误 5xx服务器错误)
200 - 请求成功。服务器成功返回网页,一般用于GET与POST请求
304 - 如果客户端发送了一个带条件的GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个304状态码
404 - 请求的网页不存在
503 - 服务不可用
GET和POST
| GET | POST | |
|---|---|---|
| 速度 | 快 | 慢 |
| 大小限制 | 1024字节 | 无 |
| 提交方式 | URL | HTTP包的body |
| 编码支持 | 只能URL编码 | 支持多种 |
| 刷新/返回 | 无影响 | 重新提交数据 |
| 数据方向 | 从服务器获取 | 向服务器传输 |
| 对数据类型的限制 | 仅限ASCII字符 | 无(二进制数据亦可) |
| 产生数据包个数 | 1 | 2 |
| 是否安全 | × | √ |
| 是否可见 | √ | × |
| 能否被缓存 | √ | × |
| 能否被收藏为书签 | √ | × |
| 请求参数是否保留在浏览器历史记录 | √ | × |
其它
跨域
出于浏览器的同源策略Sameoriginpolicy限制:协议(protocol),主机(host)和端口号(port)三者任一不同
-
设置document.domain解决无法读取非同源网页的 Cookie问题(仅限主域相同,子域不同的跨域应用场景)
-
跨文档通信API:window.postMessage()
-
JSONP
-
CORS
-
Web Sockets
-
WebPack本地代理
-
Nginx反向代理
单点登录(Single Sign On,SSO)
- 认证中心
- 父域Cookie
- Local Storage跨域
安全
Cookie如何防范XSS攻击
(XSS即跨站脚本攻击,是攻击者在返回的HTML中嵌入JavaScript) 在HTTP头部上配置set-cookie,有两个属性可以防止XSS攻击
- httponly - :禁止JavaScript访问Cookie
- secure - :告诉客户端仅当在https请求时发送Cookie
CSRF防御
1.自动防御:阻止不明外域的访问
- 同源检测
- Samesite Cookie
- 主动防御:提交时要求附加本域才能获取的信息
- Synchrogazer Tokens
- uble Cookie Defense
- stom Header
DoS攻击
使计算机或网络无法提供正常的服务
最常见的DoS攻击有计算机网络宽带攻击和连通性攻击,利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应
DDoS攻击(分布式拒绝服务)
属于DoS攻击的一种
防范手段
- 高防服务器
- DDoS清洗
- CDN加速
- 黑名单