网络基础(二)
HTTP
无状态协议,不需要建立持久的连接。客户端发出请求且服务器收到请求返回response时连接关闭。
- HTTP的传输流程:
- 地址解析:通过DNS解析服务器域名从而获得主机IP地址
- 封装HTTP数据包:解析协议名、主机、端口、对象路径、本机信息封装成HTTP请求数据包
- 封装TCP包
- 建立TCP连接:三次握手机制
- 客户端发送请求:建立连接后,客户端一次发送一个请求给服务器端
- 服务器响应:响应成功或错误、消息体等
- 服务器关闭TCP连接:服务器响应后TCP关闭连接,使用keep-alive可保活。
HTTPS
以安全为目标的HTTP,加入SSL层提高安全性。依靠证书来验证服务器身份,并对浏览器和服务器之间的通信进行数据加密。
加密流程:
- 发起请求:建立TCP连接后,发出请求证书的消息给服务器,请求消息里包含自己可实现的算法列表和其他需要的信息
- 证书返回:服务器返回证书信息给客户端,证书包含服务器域名、申请证书的公司、公钥、加密算法等
- 证书验证:客户端收到证书后,判断证书签发机构是否正确。若确认正确,则生成对称密钥,并使用公钥将对称密钥加密
- 密钥交换:客户端将加密后的对称密钥发送给服务器端,服务器在接收后使用私钥解密。
- 数据传输:此后客户端与服务器端的数据交换均使用密钥加密与解密,将数据在网络上传输。
CDN
Content Delivery nNetWork——内容分发网络,基于各地的服务器,通过中心平台的负载均衡,内容分发、调度等能力,使用户就近获取所需内容,降低网络延迟,提升用户访问的相应速度和体验度。
-
关键技术:
- 内容发布:借助建立索引、缓存、流分裂、组播等技术,将内容发布到网络上距离用户最近的中心机房
- 内容路由:通过内容路由器的DNS(重定向)机制,在多个中心机房的服务器上负载均衡用户的请求,使用户从最近的中心机房获取数据
- 内容交换:根据内容的可用性等,在缓存服务器上利用应用层交换、重定向等技术,智能地平衡负载流量
- 性能管理:通过内部和外部监控系统,获取网络部件的信息,保证网络处于最佳运行状态
-
CDN主要特点:
- 本地缓存加速:将用户经常访问的数据缓存在本地,以提升系统的响应速度和稳定性
- 镜像服务:消除不同运营商之间的网络差异,实现跨运营商的网络加速。
- 远程加速
- 带宽优化:自动生成服务器的远程镜像缓存服务器,远程用户在访问时从就近的缓存服务器上读取数据,减少远程访问的带宽,分担网络流量。
- 集群抗攻击
-
内容分发系统
将用户请求分发到就近的各个中心机房中,保障为用户提供快速,高校的内容服务。缓存的内容包括静态图片、视频、文本等。 -
负载均衡系统
根据当前网络的流量分布、各中心机房服务器的负载和用户的请求特点将用户请求负载到不同的中心机房或服务器上,保障用户内容访问的流畅性。
全局负载均衡(GSLB):跨机房的负载均衡,通过DNS或应用层的重定向技术将用户请求负载到就近的中心机房上;
本地负载均衡(SLB):机房内部的负载均衡,一般通过缓存服务器,基于LVS、Nginx、服务网关等技术实现用户访问的负载。 -
管理系统
Nginx的正向代理和反向代理
- 正向代理:客户端请求代理机器,再转发请求至服务器。(代理机器数据客户端的部分)
场景:访问原来无法访问的资源;可以做缓存,加速访问资源;代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息 - 反向代理:机器代理服务器,客户端请求先落到代理机器上再到服务器上
场景:保证内网的安全,阻止web攻击;负载均衡,通过反向代理服务器来优化网站的负载。