一、内容
1、通过一个示例建立对计算机网络的整体认识
2、建立对网络协议分层的认知;
3、分析http123的关系
4、介绍CDN运行的基本原理
5、了解网络安全的最基本原则
二、分析方法
1、自下而上:简单开始,逐渐复杂(模块拼凑成系统)
2、自顶向下:复杂变简单(系统拆分为模块)
三、蟹堡王帝国
三步走战略:从外卖到分店,再到全国。顾客相当于用户端,分店相当于服务端,小区转发点和城市转发分店相当于ISP路由器,转发表格相当于网络协议。
四、组成部分
主机由客户端和服务端组成,还包括路由器和网络协议,网络协议可以提供统一的格式。
五、网络结构:网络的网络
区域网络包括城域网和广域网,其交换方式分为电路交换和分组交换,分组交换可按顺序输出队列,网络分层包括网络层、运输层、内容层。
协议:
1、链路层:本地帧头部,Null ||loopback本机,且不需要经过别的计算机;
2、IP协议头部:5-44版本,原IP协议地址,目标IP地址;
3、运输层:TCP协议头部;
4、应用层:http协议头部 ;
5、http协议;
6、请求和响应:
请求在第一行:方法+自然路径+http版本,第二行则为头部+名称;
响应=版本+状态栏+重要信息(自定义)。
六、HTTP连接模型
http报文易理解,使用的是ASCII码、明文码,对人友好,但对机器需要经过编译器才能理解;TCP报文晦涩但对机器友好,二者使用的都是二进制。http协议在客户端发送第一个请求后,并且等待客户端响应后才能发送第二个请求,利用率下降,无法在一条路上进行多个进程。cookie重复发送,使得报文的体积增大。Persistent connection会导致队头堵塞和请求大的问题,处理时依旧是等前一个响应后才发布下一个。http pipelining(管线)会先发布多个请求,再依次响应,但需要注意的是其安全问题。http1.0请求的默认行为是关闭TCP原件、设置connection操作修改,但会导致模型降低;http1.1无法进行多路复用;http2.0会将多个请求拆分到帧中,标识数据包到请求中。
解决方法:
前三个字节标载荷长度,第四个标类型,DATA(0);data帧对应的标志位指向类型对应的flags;第6-9字节中第一位是保留位,第2-32位是流ID,随后的载荷长度的字节是载荷的内容。
好处
1、调节队头堵塞;
2、头部压缩;
3、server push;
4、调整响应传输的优先级等。