网络是怎样连接的学习笔记
1.探索浏览器内容
1.1生成HTTP请求消息
URL(uniform resource locator)统一资源定位符
FTP (file transfer protocol)文件传送协议
HTTP(hypertext transfor protocol) 超文本传送协议
TCP(transmission control protocol)传输控制协议
UDP(user datagram protocol)用户数据报协议
IP(internet protocol)网络互联协议
浏览器是综合性的客户端软件,需要不同的URL来判断使用哪个功能
URL开头部分指明了访问方法 (协议 );
HTTP定义了客户端与服务器之间交互的消息内容和步骤:
内容包括:
URI(identifier):存放网页数据的文件名或者CGI程序的文件名
其中CGI(common gateway iterface)通用网关接口 :web服务器调用其他程序的规则
方法:
GET POST HEAD OPTIONS PUT DELETE TRACE CONNECT
Web服务器对其中内容进行解析,完成工作后,结果存放在响应消息中,包括状态码、头字段、网页数据
1.2向DNS服务器查询Web服务器的IP地址
TCP/IP结构 用集线器链接的计算机形成子网,通过路由器连接成一个大的网络;
数据以包的形式传送;
IP地址: 网络号和主机号;共32位,8比特为一组,十进制表示,圆点隔开;
子网掩盖码:写在IP地址右侧,表示IP地址的结构,也可以用网络号的位数表示‘
DNS(dommain name system)域名服务器系统:用于为各种信息关联相应的名称;
DNS解析器用于域名解析,包含在操作系统的Socket库(操作系统中用于调用网络功能的程序组件几何)中;
1.3DNS服务器大接力
控制流程转移;web浏览器——》Socket向DNS查询IP地址——》操作系统内部协议栈;
DNS接受客户端的查询信息:域名 、Class 、记录类型(A表示IP地址,MX表示邮件服务器);
域名层次结构:
- 内部网络服务器数量有限的情况下,可以都保存在一台DNS服务器中;
- 多台DNS服务器接力,分层次从后往前缩小,最下层的www为服务器名
com的上一层为根域,写法可以省略,根域的IP地址只有13个且不变,一般已经配置在DNS服务器程序中了
客户端查询过程:
最近的DNS服务器——》没有则从根目录自顶向下查找;
如果有域名缓存,可以从缓存位置向下查找;
缓存:使用过的数据存放在离使用该数据较近的高速存储装置中,以提高后续访问速度
收发数据的操作:
- 1.创建套接字(调用socket)、2.接管道连接到服务器端的套接字上、3.收发数据、4.断开管道并删除套接字;
- 创建套接字完成后系统返回 描述符,应用程序通过描述符来识别套接字;
- connect连接用到:描述符(应用程序用来识别套接字的机制)、服务器IP地址、端口号(这两个是服务器和客户端实现互相识别对方套接字的机制)
- write和read:接收缓存区
- close:客户端和服务器一端先断开,然后断开操作传到另一端
2.用电信号传输TCP/IP数据——协议栈和网卡
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MweFA45H-1663053104431)(C:\Users\klChen\AppData\Roaming\Typora\typora-user-images\image-20220908192019506.png)]
2.1创建套接字
应用程序——Socket库和解析器——操作系统中的TCP、UDP、IP——网卡驱动程序——硬件网卡
浏览器、邮件等一般应用程序收发数据时用TCP,DNS查询等收发较短的控制数据时用UDP;
网络包:网络中数据的小包(几十到几千字节);
IP协议将网络包发送给通信对象
套接字作用:记录了用于控制通信操作的各种控制信息,协议栈根据这些信息判断下一步的行动;
processID:操作系统为了标识应用程序分配的编号;
应用程序调用socket创建套接字,协议栈首先分配内存空间,然后写入初始状态,返回描述符给应用程序
2.2连接服务器
TCP头部大概有双方的端口号、初始序号、窗口大小、ACK号、校验、头部长度、控制位等信息
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2V3qSb4T-1663053104432)(C:\Users\klChen\AppData\Roaming\Typora\typora-user-images\image-20220908193526768.png)]
连接:通信双方交换控制信息,在套接字中记录这些信息并准备数据收发的一连串操作;
控制信息:头部中记录的信息和套接字中记录的信息
A发送SYN为1的TCP包、创建数据的初始序号、需要的窗口大小——》B返回SYN为1的TCP包、初始序号、窗口大小、返回收到包的ACK号——》B返回收到的ACK号
TCP模块创建连接控制信息的头部——》找到套接字 ——》修改状态为正在连接
2.3收发数据
应用程序调用write将数据交给给协议栈,协议栈执行发送操作;
- 积累多少数据发送出去判断标准:1,MTU 2,时间
MTU(maximum transmission unit)最大传输单元:每个网络包所能容纳的最大长度;一般是1500字节
MSS(maximum segment size)最大分段大小:MTU减去头部的长度;也就是实际缓冲区能放的数据量
时间主要是看频率,协议栈内部有一个计时器;
- 以上两个要素时矛盾的,需要综合考虑,可以指定直接发送
- 数据块较大的需要按照MSS拆分
-
序号和ACK号使用方法——确认对方是否收到网络包:
连接时将SYN设置为1,并告知初始序号;
计算数据长度后发送ACK号,并设置比特为1,表示ACK号有效
在返回ACK号确认之前,包都保存在缓冲区,可以重写发送 -
客户端和服务器端双向传输过程
-
网络的错误检测和补偿机制非常复杂;
-
- 按照ACK返回时间动态调整等待时间;
- 滑动窗口管理ACK:接收方通过TCP头部的窗口字段将缓冲区余量告知发送方;发送方在等待ACK返回时继续发送下一个包,但需要在缓冲区余量内。
最大数据量称为窗口大小:一般就是接收方缓冲区的大小 - ACK和窗口合并,多个ACK时只需要发最后一个以告知接收数据的最后位置——都是为了减少包
-
协议栈接受数据的基本操作:检查收到的数据库和TCP头部,没有数据确实则返回ACK,将数据放在缓存区,数据拼接为原始数据并交给应用程序(复制到程序的内存空间),最后向发送方发送窗口更新
2.4 服务器断开并删除套接字
例子:服务器端调用Socket库中close程序,协议栈生成包含断开的TCP头部(控制为FIN设为1),委托IP模块向客户端发送数据,同时服务端套接字记入断开信息;客户端收到收到TCP头部,协议栈将套接字进入断开状态,并返回给服务器端ACK号;协议栈就可以等应用程序取数据了。应用程序read数据,这是协议栈告知应用程序数据收到完成。客户端应用close关闭生成FIN为1发送为服务端,服务端返回ACK,通信结束。
- 删除套接字:需要等待时间以方便重新发送FIN
总结TCP整体流程:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XUw1Nl6F-1663053104433)(C:\Users\klChen\AppData\Roaming\Typora\typora-user-images\image-20220908104715535.png)]
2.5 IP和以太网的包收发操作
mac头部——集线器——子网中的以太网协议(可以更换成其他网络如无线局域网)
凡是局域网使用的头部豆角MAC头
IP头部——IP协议——路由器
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ObOTM8Ay-1663053104433)(C:\Users\klChen\AppData\Roaming\Typora\typora-user-images\image-20220908193611154.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dsz2p67z-1663053104434)(C:\Users\klChen\AppData\Roaming\Typora\typora-user-images\image-20220908193629305.png)]
包收发操作
- IP模块(包传输过程的入口):TCP模块委托IP模块发送包,即加上IP头,MAC头,包就封装好了;
- 封装好的包交给硬件网卡,将数字信息转换为光电信息,通过集线器、路由器等传递到接收方;
- 接收方拿到后做出相应,返回的包被转换为数字信息,加上TCP头部
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q0UtkpHM-1663053104434)(C:\Users\klChen\AppData\Roaming\Typora\typora-user-images\image-20220908145444278.png)]
Gateway网关:在TCP/IP中指的是路由器;
通过路由表来匹配该把包发给哪个网卡的IP地址;
以太网内MAC地址查询:
ARP(address resolution protocol)地址解析协议:一种地址广播的方法,能返回子网内相应IP地址的MAC地址;
MAC地址长度为48比特,IP地址长度32比特,也就是6部分,一字节一部分,用-或者:分开,十进制和十六进制表示;
media access control
目前常用的是交换式集线器:信号会更具MAC地址流到指定的设备
-
以太网特性:
- 将包发送到MAC头的接收方MAC地址所代表的的目的地;
- 用发送方的MAC地址识别发送方;
- 用以太类型识别包类型
说明:无线局域网也有1和2的特点,所以用来替代以太网
网卡将IP包转化成光电信号(没看)
网卡中的ROM保存唯一的MAC地址,生产时就写入的,网卡驱动初始化后生效;
返回接收包:对应MAC地址的包放入缓存区——》产生中断信号,中断控制器,CPU暂时挂起切换到中断程序——》调用网卡驱动执行操作
——》从缓冲区中取出包,通过MAC头部中以太类型判断包类型(协议类型)
接收——》检查IP头部——》如果不一致,返回错误ICMP(查表)
2.6UDP协议的收发操作
TCP复杂是为了实现高效和可靠:缺失部分包的时候只需要发送出错的部分,避免了重发已经送达的包;(数组在多个包的情况)
UDP没有连接和断开阶段,只要加上UDP头部,交给IP发送就行了;接收按照IP头部和接收方的地址,UDP头部端口号**(在一个包大小范围内解决)**
- UDP只负责单纯发送,不会监控,所以协议栈也不知道有没有错误;
- 最大数据长度为IP包减去UDP头部
- 音频和视频会使用UDP,确实部分包会失真,但是用TCP要额外的几倍带宽
3. 网线到网络设备——集线器、交换机、路由器
3.1信号在网线和集线器中传输
每个包都是独立传输的;
传输过程:网卡中PHY(MAU)模块将包转化为电信号——》通过RJ-45进入双绞线——》信号流入网线——》集线器的接口;
(传输过程中信号会衰减,波形会失真;用双绞线来抑制衰减,阻隔噪声措施等)
——》集线器将信号发送给所有连接在他上面的线路(原封不动广播)
3.2交换机的包转发
PHY模块接收网线中信号转化为通用格式——》MAC模块将信号转化为数字信号——》包尾部检查FCS——》没异常所有包放到缓冲区——》查询MAC地址表(MAC地址和端口的对应表)——》将信号发送到相应的端口
- 交换机的MAC模块不具有MAC地址
- MAC地址表会自动维护,异常时重启交换机重置地址表就行
- 全双工模式是交换机特有,可以同时发送和接收操作
- 全/半双工切换的问题,自动协商功能
- 交换机可以同时执行多个转发操作,转发能力强
3.3路由器的包转发
路由器是基于IP设计,交换机是基于以太网设计
路由器转发包过程:
通过委托端口接受包(取决于端口通信技术)——转发模块根据接受包的IP头部中记录接收方IP地址,在路由表中查询——》委托端口模块转发包
- 端口模块以实际的接收方/发送方的身份来收发网络包
- 路由器的以太网端口有MAC地址,路由器的IP端口有IP地址
- 路由器的子网掩盖码值表示在匹配网络包目标地址时需要对比的比特数,有可能路由聚合合并为一个子网
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rUcKMktu-1663053104435)(C:\Users\klChen\AppData\Roaming\Typora\typora-user-images\image-20220909144520902.png)]
a. 路由器接受包
- 转化为数字信息,检查MAC地址是否匹配;
- 接受操作后包的MAC头部被丢弃(MAC头部的作用就是将包传递到路由器)
b.查询路由表确定输出端口
- 按照IP头部转发,子网掩码配合IP地址,确定候选转发目标
- 最长匹配原则
c.找不到匹配路由时选择默认路由
- 子网掩码0.0.0.0,不需要匹配,默认路由,这样配置的网关地址被称为默认网关
- 在找不到其他匹配路由,选择默认路由
d.路由器相关工作
-
TTL:在IP头部,表示保底有效期,经过一个路由器减1,为0就是超过有效期。
一般设置为64/128,防止信息错误或者路由混乱 -
分片功能拆分大网络包:
原因:不同类型线路传输的最大包长度不同;
操作:用IP协议中定义的分片功能,对整个包拆分
前提:检查MTU,检查IP头部标志字段是否能拆
不同于TCP拆分,TCP是在数据拆好后放到包中,也就是一个数据块刚好是包的大小
f.路由器的发送操作
判断下一个转发目标:
如果网关列表内容为IP地址,该地址为下一个转发目标;
网关列表为空,则IP头部中的接收方IP地址为下一个转发目标;
路由器也会用ARP查询下一个转发目标的MAC地址;
路由器和交换机
所说的加上MAC头,实际是上将IP包装进以太网包的数据部分,委托以太网传输数据,i.e. 路由器把包的传输工作委托给交换机;
IP(路由器)负责将包发送给通信对象整个过程;
以太网(交换机)将包传输到下一个路由器;
3.4 路由器的附加功能
为了解决地址不足分为私有地址(golbally unique address),公有地址(public address)
私有地址是公有地址还没有分配的范围
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WwsYkEpt-1663053104435)(C:\Users\klChen\AppData\Roaming\Typora\typora-user-images\image-20220909172640673.png)]
但是公司内部的私有地址不能和互联网直接进行通信,需要通过地址转换机制
地址转换
地址转换设备(路由器)
改写端口号,提高公有地址的利用率
4.接入网和网络运营商
4.1 ADSL接入网的结构和工作方式
互联网上万台路由器,按照接收方IP地址判断,将包转发出去;
距离的不同和路由的维护方式不同,就是互联网与家庭、公司网络之间最初主要的两个不同点;
接入网:连接互联网与家庭、公司网络的通信线路(ADSL、FTTH、CATV、电话线、ISDN等);
ADSL(asymmetric digital subscriber line)不对称数字用户线
ADSL modem 调制解调器:将包拆分成信元,并且转化为电信号发送给分离器
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ulnGnFc6-1663053104436)(C:\Users\klChen\AppData\Roaming\Typora\typora-user-images\image-20220911135603820.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kXz0BRqU-1663053104436)(C:\Users\klChen\AppData\Roaming\Typora\typora-user-images\image-20220911140104023.png)]
BAS(broadband access server)宽带接入服务器 ,一种路由器(不同与普通,具有身份认证,向客户端下发IP地址等配置信息的功能):1.用户认证的窗口,2.隧道方式传输网络包
PPP (point to point protocol)点到点协议。电话线、ISDN等通信路线所用的一种协议
ATM (asynchronous transfer mode)异步传输 ,电话线为载体的通信方式,以“信元”为单位进行。
FTTH (Fibre (Fiber) To The Home)基于光线的接入网技术:用光纤代替ADSL将用户端接入路由器和运营商的BAS连接起来的接入方式
分离器的作用
ADSL modem将信元转化为电信号后,通过分离器,但没作用;(电话和ADSL信号同时流入线路)
信号从电话线传入时,分离电话和ADSL信号,防止ADSL成为电话的噪音:
对于电话:分离器过滤掉高频的ADSL;
对ADSL:ADSL modem内部就有信号过滤功能;
分离器也可以房子电话对ADSL传输方式的干扰
分离器——》电话线——》总配线架——》电话局——》DSLAM(转回数字信号 信元)——》BAS(将ATM信元转化为原始的包)
4.2光纤接入网
光线的工作原理。。
FTTH技术
- 直连:一种是光纤直接从用户端连接到最近的电话局:以太信号——》光信号——》DSLAM——》BAS转化为电信号,将包转发到互联网内部——》到达互联网后,服务器响应——》响应包的光信号沿着光纤返回
光线中波分复用,区别上行和下行信号
- 分路:分光器设备,让光纤分录,同时连接多个用户:OLT和ONU避免碰撞;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VYQI3S9Z-1663053104436)(C:\Users\klChen\AppData\Roaming\Typora\typora-user-images\image-20220911154100876.png)]
4.3接入网中使用的PPP和隧道
PPPoE(Point to Point Protocol over Ethernet)以太网的点对点协议:将PPP消息装入以太网包进行传输的方式;
包原封不动的搬运到另一端,原理上就可以看成建立隧道;
互联网接入路由器通过PPPoE的发现机制查询BAS的MAC地址(相当于拨号上网中拨号)
- 地址转换:是否BAS向计算机下发了TCP/IP配置,没下发需要在路由器中转化为公有地址
4.4网络运营商的内部
POP(Point of Presense)接入点:ADSL、FTTH等接入网的连接点,互联网的入口在这里
NOC(Network Operation Center)网络运行中心,(扩大版、高性能的POP)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rxQuSPdr-1663053104437)(C:\Users\klChen\AppData\Roaming\Typora\typora-user-images\image-20220911155250806.png)]
按照不同类型的接入网分别使用不同类型的路由器
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-13q472W4-1663053104437)(C:\Users\klChen\AppData\Roaming\Typora\typora-user-images\image-20220911160108080.png)]
4.5跨越运营商的网络包
BGP(border gateway protocol) 边界网关协议:路由信息交换的过程;
运营商之间所有路由器平等交换,多路判断优先级,收费;
IX(internet eXchange)互联网交换中心:将运营商汇聚在一起,设置中信设备,减少线路数量;具有高速以太网端口的二层交换机
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t5etwta1-1663053104438)(C:\Users\klChen\AppData\Roaming\Typora\typora-user-images\image-20220911162156742.png)]
5.服务器端的局域网
在服务器前部署一个防火墙:只允许发往特定服务器中的特定应用程序的包通过,屏蔽其他的包;常用的是包过滤方式
5.1 包过滤方式(主流防火墙方式)
- 设置允许通过的接收方IP和发送方IP(注意应答机制,要回复ACK)
- 设置端口号限定应用程序,接收方端口号、发送方端口号
- 控制位判断连接方向(TCP头部的控制位;但是对UDP没有控制位可以设置只能公司内网访问DNS服务器,牺牲便利性)
- 对具体数据不能识别风险:一种是持续关注安全漏洞信息并更新软件的版本;一种是在防火墙之外部署用来检查包内容并阻止有害包的设备或软件。
内网访问公开区域
外部互联网访问公司内网,默认不能访问,内网到外网的话需要地址转化
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M0JXxOau-1663053104438)(C:\Users\klChen\AppData\Roaming\Typora\typora-user-images\image-20220911171030839.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d7y1dmim-1663053104439)(C:\Users\klChen\AppData\Roaming\Typora\typora-user-images\image-20220911171046135.png)]
5.2 通过将请求平均分配给多台服务器来平衡负载
服务器的访问量上升,需要增加带宽和提高服务器性能;
提高服务器性能可以使用多台服务器来分担负载的方法——分布式架构;
采用多台Web服务器,减少每台服务器的访问量;
用DNS按顺序循环分配多台不同的IP地址——轮询;
问题:1. 一台宕机了咋办——访问返回失败,尝试下一个IP
2. 有些操作跨多个页面,访问服务器变化则操作无法继续
负载均衡器
用其IP地址代替Web服务器的实际地址注册到DNS服务器上;
操作跨多个页面时,请求发送到同一个Web服务器——》判断请求之间的相关性,在HTTP头部加入Cookie
其他情况需要定期采集Web服务器的CPU、内存使用率
缓存服务器
服务器按照功能划分不同服务器,缓存服务器是一台通过代理机制对数据进行缓存的服务器;
代理在Web服务器和客户端之间,Web服务器返回的数据保存在此版中(缓存)
缓存服务器注册到DNS服务器中
Via: 表示缓存服务器中专的
正向代理
缓存服务器在客户端一侧部署;用作转发过程判断是否允许访问、用作防火墙的实现;
-
设置时,需要在浏览器的设置窗口的代理服务器中填写正向代理的IP地址
-
有代理时,客户端发送给缓存服务器的请求头不需要直接填写http://这样的完整网址
反向代理
服务器端的缓存服务器,将请求消息中URI的吗,目录名与Web服务器进行关联,能转发不带完整网址的请求
透明代理
用包的IP头部中接收方的Ip地址判断访问服务器;
在消息经过时拦截
5.3 内容分发服务
缓存服务器放在客户端——降低Web服务器的负载——无法减少互联网的网络流量
缓存服务器放在Web服务器端——Web服务器无法控制——减少网络流量
缓存服务器放在互联网的边缘(集合优点,但是互联网都可以访问,部署数量需求多)——服务器运营者能控制——降低网络流量
内容分发服务:CDN(content delivery network) 或者叫CDS(system)
内容分发服务运营商:CDSP(provider)
提前查询路由器到各个缓存服务器的之间的距离,判断最近的
6.请求到达服务器,响应返回浏览器
6.1服务器的基本信息
服务器和客户端的协议栈、网卡、Socket库(调用其中的程序组件不一致)等功能一致,TCP/IP的功能统一,客户端计算机也可以用作服务器;
服务器程序
客户端通信模块一般是与客户端一对一的关系;
服务器操作系统具有多任务、多线程功能,同时运行多个程序;
:任务作为单个程序,线程是程序的一个部分
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yT4rA4KF-1663053104439)(C:\Users\klChen\AppData\Roaming\Typora\typora-user-images\image-20220912222625199.png)]
服务器在调用Socket库上的区别在连接阶段:
客户端:用管道连接服务器端的套接字
服务器端:1.将套接字设置为等待连接的状态 2. 接受连接
套接字的确定:客户端IP地址、客户端端口号、服务器IP地址、服务器端口号;
使用描述符来指代套接字的原因:等待连接的套接字中没有客户端IP地址和端口号、使用描述符比较简单
6.2 服务器接收操作
服务器接收操作的全过程回顾
网卡(硬件)接收信号,转化为数字信号——》按照包尾部的帧校验符FCS来校验错误——》MAC头部检查接收方的MAC地址——》保存在网卡的缓冲区中
- 网卡的MAC模块将网络包从信号还原为数字信息,校验FCS并且存入缓冲区
——》CPU处理中断,网卡驱动运行,读取缓冲区的包——》根据MAC头部的以太类型判断协议种类——》调用负责处理该协议的程序(也就是TCP/IP协议栈)
- 网卡驱动按照MAC头部判断协议类型,并且发送个相应的协议栈
——》达到协议栈后,IP模块检查IP头部中接收方IP地址,判断转发——》检查IP头部知道是否分片,如果分片了,现存在内存里,等组装充足后还原为原始包——》检查IP头部的协议号,06则为TCP模块,11为UDP模块
- 协议栈的IP模块检查IP头部,判断是不是发给自己的,网络包有没有呗切片,对应转发协议栈是TCP还是UDP
——》TCP模块按照包的内容区别,如果是SYN为1发起连接的包——》检查包的接收方端口号有没有等待连接的套接字——》无则返回ICMP消息,有则创建套接字副本,信息写入套接字生成ACK号,生产TCP头部,委托IP模块发送给客户端——》客户端返回ACK号确认,连接完成——》服务器端及进入调用accept的暂停状态,当将新套接字的描述符转交服务器程序后,服务器恢复运行
- TCP模块:根据收到包的发送方/接收方的IP地址/端口号找到对应的套接字;将数据拼接放在缓冲区;向客户端返回ACK号
——》服务器或者客户端发起,调用Socket库中close,TCP模块生成控制位FIN为1,发送——》客户端或服务器返回一个ACK号,生成FIN为1的TCP头部发送——》服务器或客户端返回ACK号完成
- HTTP1.1中,客户端先发起断开;断开操作后,套接字过一段时间被删除
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nMMVVSEA-1663053104440)(C:\Users\klChen\AppData\Roaming\Typora\typora-user-images\image-20220913140803131.png)]
6.3 Web服务程序解释请求消息并做出相应
最简单的是按照请求方法+URI的HTML文件名获取
判断访问权限依据:客户端IP地址;客户端域名;用户名和密码
6.4 浏览器接受响应消息并显示内容
按照Content-Type判断数据类型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xazF6V9C-1663053104440)(C:\Users\klChen\AppData\Roaming\Typora\typora-user-images\image-20220913142737133.png)]
charset=urf-8表示文本编码方式
Content-Encoding表示压缩格式的具体转换方式
实际显示是浏览器负责对操作系统发出指令显示的