计算机网络:
网络组成部分:
- 1主机(提供或者接收信息):客户端、服务器
- 2路由器(转发主机之间的信息)
- 3网络协议(提供统一的格式,方便主机和路由器进行编码和解码):标头和载荷
网络协议分层:
(从低到高)物理层、内容层、网络层、运输层、应用层
- 网络结构:网络的网络
- 信息交换方式:电路交换和分组交换
HTTP1、2、3的关系:
HTTP基本结构:
- 请求 (第一行起始行)请求的方法、资源路径、版本 (后面的是头部,用空行分割)头部名称(不区分大小写):头部的值
- 响应 (第一行状态行)http版本、状态码、重要信息(可自定义) (后面的是头部,用空行分割)
HTTP2
用帧传输好处:调整响应传输的优先级、头部压缩、server push
HTTP3
QUIC可以为除了HTTP协议以外的应用层协议提供支持 头部名称
CDN运行的基本原理:
- DNS劫持:域名解析一般由网站自己处理、要加速的域名则重定向到CDN厂商域名解析服务处理、CDN厂商根据来源确定最近的CDN服务器的IP、用户直接访问最近的CDN服务器。
- 选择CDN方法:根据dns查询来源IP的地理位置查询最近的cdn服务器 WebSocket:有状态的持久连接、服务器可以主动推送消息、用WebSocket发送消息延迟比HTTP低,由http升级过来
网络安全的最基本原则:
- 三要素:机密性、完整性、身份验证
- 机密性:攻击者无法获取通信内容。
- 完整性:攻击者对内容进行篡改时能被发现。
- 身份验证:攻击者无法伪装成通信双方任意一方与另一方通信。
- 加密方式:对称加密、非对称加密
- 对称加密:加密、解密用同样的密钥
- 非对称加密:加密、解密、使用不同的密钥(公钥、私钥),而且公钥加密只能用私钥解密、私钥加密只能用公钥解密
- 密码散列函数(哈希函数)
- 输入:任意长度内容
- 输出:固定长度的哈希值
- 性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的
- 秘密性:加密需要加密算法和密钥等信息(统称为秘密信息),在没有提前交换秘密信息的前提下,无法在不安全的信道交换秘密信息。
如何实现身份验证:
- 数字签名:对文内容的哈希值使用私钥加密,验证者使用公钥验证
- 数字签名(指纹)=私钥加密(密码散列函数(原文))
- 消息=原文+数字签名 一般用于对公开内容(如包含公钥的证书)进行数字签名,防止篡改 根证书是证书链的尽头,验证的一连串证书称为证书链,分发证书、验证证书的基础设施称为PKL,Public Key Infrastructure,如果想要实现身份验证,通信双方需要先有秘密信息,即根证书中的公钥 PKL保证了普通用户不需要“面的面“和根证书机构交换跟证书
HTTPS
- 把HTTP的明文换成密文,再验证身份,即HTTPS。
- HTTPS=HTTP+TLS
- TLS= 身份验证+加解密
- 身份验证靠PKL
- 服务端身份验证靠PKL,客户端身份验证靠HTTP协议