计算机网络概论(续) | 青训营笔记

60 阅读3分钟

Web 应用

HTTP连接模型:
HTTP 1 2 3的演进历史
  • HTTP 1.1: 按行/字节发送,若将两条报文交替发送,则无法判断每一行属于哪个请求,无法多路复用。
  • HTTP 2: 将多个请求拆分到帧里,按帧发送,可实现多路复用
    •    1-3个字节表示这个帧的载荷长度
      
    •    第4个字节表示帧的类型
      
    •    第5个字节,表示类型对应的标志位,用于传递当前帧的一些状态
      
    •    第6个字节的第一位是保留位,后面的表示当前流的ID
      
    •    再往后的表示当前帧的载荷
      
    此时协议不再是单一的请求和相应,而是多了许多类型
    优点:多路复用,调整相应传输的优先级,头部压缩,Server Push
  • HTTP 3: QUIC
    QUIC 可以为除HTTP协议以外的应用层协议提供支持
CDN: 解决了HTTP协议之外的问题

域名解析一般由网站自己处理,要加速的域名则重定向到CDN厂商的域名解析服务处理,CDN厂商根据来源确定最近的CDN服务器的IP,用户直接访问最近的CDN服务器。

  • 全国的CDN服务站点的数量非常庞大,因此只在CDN维护大部分内容,但这部分内容可以满足大部分用户的需求
  • 大部分网站会使用一些策略来确保用户的体验
    • 拉策略:根据用户的需求决定CDN上的拷贝,自区域服务器向主服务器拉取请求,并且会将数据存在区域的服务器上,且会在一段时间后会清除掉最近访问次数较小的数据。
    • 推策略:由网站决定CDN上的拷贝。

WebSocket

  • WebSocket也是一种常用的网络协议 与HTTP协议相比的优点:
  1. 有状态的持久连接
  2. 服务端可以主动推送信息
  3. 用WebSocket发送消息延迟比HTTP低
  • WebSocket和HTTP的关系
    WebSocket由HTTP升级而来,需要在建立了HTTP协议的基础上使用WebSocket协议进行通信

网络安全

当协议使用明文时,在信息传递的过程中,经过的路由器或交换机都可以对信息进行修改,这就导致很多行为无法通过网络进行。

  • 网络安全三要素:
    1. 机密性:攻击者无法获知通信内容
    2. 完整性:攻击者对内容进行篡改时能被发现
    3. 身份验证:攻击者无法伪装成通信双方的任意一方与另一方通信
  • 基础工具和约定: 对称加密:加密、解密使用同样的密钥
    非对称加密:加密解密使用不同的密钥(公钥和私钥),而且公钥加密只能用私钥解密、私钥加密只能用公钥解密
  • 密码散列函数(哈希函数) 输入:任意长度的内容 输出:固定长度的哈希值 性质:找到两个不同的输入是之经过密码散列函数后有相同的哈希值,在计算上不可能
  • 使用加密算法和密钥等信息(秘密信息)是保证机密性最重要的一环,而完整性和身份验证相互关联,
    想要实现完整性,通信双方需要先有秘密信息
    想要实现身份验证,需要使用签名(数字签名:对明文内容的哈希值使用私钥加密,验证者使用公钥加密,即非对称加密),消息为原文加数字签名 证书链的尽头是根证书,用以证明公钥可以信任 HTTPS使用PKI完成了除客户端身份验证以外的特性,客户端身份验证靠HTTP协议实现