1、网络基础
组成部分(主要)
- 主机:客户端+服务端
- 路由器
- 网络协议
网络结构:网络的网络
区域网<城域网<广域网
信息交换方式:
电路交换、分组交换
网络分层:物理层、链路层、网络层、运输层、应用层
- 物理层:在局部局域网上传送数据帧,它负责管理计算机通信设备和网络媒体之间的互通。
- 链路层:负责网络寻址、错误侦测和改错。
- 网络层:决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成分组。
- 运输层:负责在两台主机的进程之间的通信提供传输的服务。传输层有两个协议,TCP和UDP。
- 应用层:提供为应用软件而设的接口,以设置与另一应用软件之间的通信。例如: HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。
协议
- 协议的存在依赖于连接
- 协议定义了在两个或多个通信实体之间交换的报文格式和顺序,以及报文发送和/或接受一条报文或其他事件所采取的动作。
标头和载荷
报文=链路层头+ip协议头+udp协议头+http协议头+http正文
2、web中的网络
HTTP协议
请求(红色):第一行请求方法、资源路径、HTTP版本,后面的是头部(get请求没有正文,post请求会有正文)响应(蓝色):第一行为HTTP版本、状态码、状态信息,后面的是头部
HTTP连接模型
队头堵塞(Head of Line Blocking):一列的第一个数据包受阻而导致整列数据包受阻。
- HTTP1.1:按顺序处理,无法多路复用
- HTTP2:拆分为帧,到浏览器后重组
- 优点:调整响应传输的优先级、头部压缩、Server Push
- 缺点:也会存在队头堵塞,在TCP上。
如上图,假设包1丢了,包2、3就不会发送。虽然包1的丢失对于style.css没有影响,但是还是不会发送2、3,依然堵塞。
- HTTP3:QUIC
- QUIC:Quick UDP Internet Connection,可以为除了HTTP 协议以外的应用层协议提供支持。(UDP不靠谱,但QUIC靠谱)
HTTP与HTTPS区别
-
HTTPS协议需要到ca申请证书
-
HTTP是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的ssl加密传输协议
-
HTTP和HTTPS使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。
-
HTTP的连接很简单,是无状态的; HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全
CDN:
CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输得更快、更稳定。
DNS劫持:
域名劫持是互联网攻击的一种方式,通过攻击域名解析服务器(DNS),或伪造域名解析服务器(DNS)的方法,把目标网站域名解析到错误的IP地址从而实现用户无法访问目标网站的目的或者蓄意或恶意要求用户访问指定IP地址(网站)的目的
WebSocket:
HTTP的升级,有状态的持久连接,服务端可以主动推送消息,用WebSocket发送消息延迟比HTTP低
3、网络安全
- 机密性:攻击者无法获知通信内容
- 完整性:攻击者对内容进行篡改时能被发现
- 身份验证:攻击者无法伪装通信双方中任意一方与另一方通信
对称加密和非对称加密
- 对称加密:加密、解密用同样的密钥
- 非对称加密:加密、解密用不同的密钥,公钥加密只能用私钥解密、私钥加密只能用公钥解密
密码散列函数(哈希函数)
- 输入:任意长度的内容;输出:固定长度的哈希值;性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的。