Skip to content

Latest commit

 

History

History

计算机网络

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

计算机网络

HTTP

HTTP的架构模式

http是客户端/服务器模式中 请求-响应 所应用的协议,在这种模式中客户端向服务器提交HTTP请求,服务器响应请求的资源

HTTP的特点

  • HTTP是半双工协议,在同一时刻数据只能单向流动,客户端向服务器发送请求,然后服务器响应请求,二者不能同时进行

HTTP1.1和HTTP2.0

  • HTTP1.1
    • 长连接:设置 keep-alive 允许再一定时间内,同一域多次请求数据,只建立一次http连接,使用通道以提高效率
    • 支持只发送 header 信息
    • 引入更多的缓存控制等策略
    • 管道机制:可以将浏览器的请求一次性全部发送给服务器,无需等待上一个完成再发送下一个
  • HTTP2.0(使用二进制数据帧传输)
    • 多路复用:TCP连接可以承载任意数量的双向数据流,多个帧之间可以乱序发送,然后根据帧首部的流标识重新组装
    • 头部数据压缩:HPACK 算法,维护一份相同的字典
    • 服务器推送:服务端可以在发送HTML时主动推送其它资源,不用等浏览器解析到响应位置再发起请求

HTTP和HTTPS

HTTP HTTPS
CA证书 不需要 需要(产生一定费用)
是否加密 明文 SSL加密
端口 80 443
状态 无状态 有状态

加载URL全过程

  • 首先进行域名解析
    • 浏览器搜索自己的DNS缓存
    • 若没有,则搜索操作系统的DNS缓存
    • 若没有,则操作系统将域名发送至本地域名服务器,本地域名服务器查询自己的DNS缓存
    • 若没有,本地域名服务器向根域名服务器发起请求,根域名服务器返回com域的顶级域名服务器地址,本地域名服务器向com域的顶级域名服务器发起请求,返回权限域名服务器地址,本地域名服务器向权限域名服务器发起请求,得到IP地址。本地域名服务器将IP地址返回给操作系统,操作系统将IP地址返回给浏览器
  • 浏览器判断是否需要建立网络连接
  • 是,建立HTTP事务发起HTTP请求
  • 请求进入传输层,选择传输协议,TCP或UDP,对HTTP封装,加入端口等信息
  • 请求进入网络层,通过IP协议将IP地址封装为IP数据报
  • 进入数据链路层,把IP数据报添加首部和尾部,封装为MAC帧,根据mac开始建立TCP连接(三次握手)
  • TCP连接后如果使用了HTTPS则要进行SSL握手,沟通加密参数以及交换密钥,完成后,报文再发送给TCP之前都会在SSL层加密
  • TCP连接后就可以发送HTTP请求(浏览器发送资源请求前会检查缓存)
  • 服务端接受请求返回资源
  • 浏览器接收资源解析文件
  • 传输完成后断开TCP连接或者保持长连接

与HTTP相关的协议

  • TCP/IP

TCP/IP协议一定听说过,TCP/IP我们称之为协议簇,什么意思呢?就是TCP/IP协议簇中不仅仅只有TCP协议和IP协议,它是一系列网络通信协议的统称。而其中最核心的两个协议就是TCP/IP协议,其他的还有UDP、ICMP、ARP等等,共同构成了一个复杂但有层次的协议栈

TCP协议的全称是Transmission Control Protocol的缩写,意思是传输控制协议,HTTP使用TCP作为通信协议,这是因为TCP是一种可靠的协议,而可靠能保证数据不丢失。

IP协议的全称是Internet Protocol的缩写,它主要解决的是通信双方寻址的问题。IP协议使用IP地址来标识互联网上的每一台计算机,可以把IP地址想象成你的手机号码,你要与别人通话必须要知道他人的手机号码,计算机网络中信息交换必须先要知道对方的IP地址

  • DNS

有没有想过为什么你可以输入www.baidu.com就能获取到你想要的网站?是因为计算机网络中的每个端系统都有一个IP地址存在,而把IP地址转换为便于人类记忆的协议的就是DNS 协议

DNS的全称是域名系统(Domain Name System),它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网

  • URI/URL

我们可以输入www.baidu.com地址来访问百度官网,那么这个地址有什么规定么?可以随意输入么?我们输入的地址格式必须要满足URI的规范

URI的全称Uniform Resource Identifier,中文名称是统一资源标识符,使用它就能够唯一地标记互联网上的资源

URL的全称是Uniform Resource Locator,中文名称是统一资源定位符,也就是我们俗称的网址,实际上就是URI的一个子集

URI不仅包括URL,还包括URN(统一资源名称)

  • HTTPS

HTTP一般是明文传输,很容易被攻击者窃取重要信息,鉴于此,HTTPS应运而生。HTTPS的全称为Hyper Text Transfer Protocol over SecureSocket Layer,HTTPS和HTTP有很大的不同在于HTTPS是以安全为目标的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS在HTTP的基础上增加了SSL层,也就是说HTTPS = HTTP + SSL

CDN

CND优化

  • 资源调度:CDN会根据用户接入网络的ip寻找距离用户最优路径的服务器。调度的方式主要有DNS调度、http 302调度、使用HTTP进行的DNS调度(多用于移动端)
  • 缓存策略和数据检索:CDN服务器使用高效的算法和数据结构,快速的检索资源和更新读取缓存;
    • 网络优化:从OSI七层模型进行优化,达到网络优化的目的
    • L1物理层:硬件设备升级提高速度
    • L2数据链路层:寻找最快的网络节点,确保Lastmile尽量短
    • L3路由层:路径优化,寻找两点间最优路径
    • L4传输层:协议TCP优化,保持长连接、TCP快速打开
    • L7应用层:静态资源压缩,请求合并