《网络是怎样连接的》读书笔记

计算机基础 专栏收录该内容
4 篇文章 0 订阅

《网络是怎样连接的》

一、浏览器生成消息

1.生成HTTP请求消息

URL (Uniform Resource Locator统一资源定位符)

URI (Uniform Resource Identifier统一资源标识符)

浏览器解析URL。如果URL以“/”结尾,将访问index.html或default.html默认页面。目录末尾的“/”也可省略,如http: //test/test,这个test如果是文件就按文件处理,如果是文件名就按目录名处理,继续找下一级默认页面。

在这里插入图片描述

HTTP协议 定义了客户端和服务器之间交互的消息内容和步骤。客户端向服务器发送请求(“对什么(URI)做什么”)。服务器根据要求完成工作后将结果放在响应消息中。

【请求示例】

第一行为请求行,可大致了解请求内容,末尾需要写上HTTP版本号。

第二行开始为消息头,定义了很多项目如日期、客户端支持的数据类型、语言、压缩格式等。

消息体添加一个完全没有内容的空行,然后写需要发送的数据。

<form method="GET" action="/cgi/sample.cgi">
  <input type="text" name="Field1" size="20">
  <input type="submit" value="SEND" name="SendButton">
  <input type="reset" value="RESET" name="ResetButton">
</form>

【服务器响应状态码】

状态码含义
1xx告知请求的处理进度和情况
2xx成功
3xx表示需要进一步操作
4xx客户端错误
5xx服务器错误

注:每条请求消息中只能写1个URI,只能获取1个文件,如果网页中包含3张图片,则需要发送4次请求。

1.2向DNS服务器查询Web服务器的IP地址

发送者发出的消息经过子网中的集线器,转发到距离发送者最近的路由器上,路由器根据消息目的地判断下个路由器位置,不断转发。

IP地址 32bit的数字,按照8bit分为4组,用十进制表示后用圆点隔开。

10.11.12.0/24 该地址表示整个子网

10.11.12.255 表示对整个子网进行广播

10.11.12.13/24 “/”后为子网掩码

子网掩码 表示网络号与主机号之间的边界。如255.255.255.0表示前24位均为网络号,最后8位为主机号

DNS 电脑上一定包含DNS客户端,称为DNS解析器,其包含在操作系统的socket库中。socket库是用于调用网络功能的程序组件集合。

因此根据域名查询IP地址时,浏览器会使用Socket库中的解析器。将域名解析为IP地址,写入浏览器指定的内存地址中。解析器根据DNS的规格,生成查询某IP的数据,并发送给DNS服务器,发送这个操作委托给操作系统内部的协议栈(TCP/IP驱动)来执行。

1.3全世界DNS服务器的大接力

客户端的查询消息。DNS服务器的基本工作就是根据需要查询的域名和记录类型查找相关的记录,并向客户端返回响应消息。客户端发送查询消息,DNS服务器从保存的记录中查找,返回域名对应的响应数据。

信息名解释
域名服务器、邮件服务器(邮件地址@后面的部分)的名称
Class识别网络的信息,如今永远是代表互联网的IN
记录类型表示域名对应何种类型的记录;当类型为A时,表示域名对应的是IP地址,类型为MX时,表示域名对应的是邮件服务器。

www.lab.glasscom.com 域名以句点分割,越靠右层级越高。一个域的信息是作为一个整体存放在DNS服务器中的,不能将一个域拆开来存放在多台DNS服务器中。

1.4委托协议栈发送消息

向操作系统内部的协议栈发出委托时,需要按照指定的顺序来调用socket库中的程序组件。当调用socket库中的程序组件时,应用程序所指定的参数会通过socket库的程序组件传递给协议栈,由协议栈执行相应的操作。

收发数据的主要过程:

  1. 建立管道。关键在于管道两端的数据出入口(套接字)。
    1. 服务器创建套接字,等待客户端连接管道;
    2. 客户端创建套接字,然后从该套接字延伸出管道;
    3. 管道连接到服务器的套接字上
  2. 根据应用程序规则决定断开顺序。其中一方断开后另一方也会断开。套接字本身也会被删除。

描述符 应用程序用来识别套接字的机制

IP地址和端口号 客户端和服务器之间用来识别对方套接字的机制

二、用电信号传输TCP/IP数据

2.1创建套接字

TCP/IP软件采用分层结构,从顶层至底层依次为:应用程序(下包含socket库和解析器)、操作系统(TCP/UDP、IP)、驱动程序(网卡驱动程序)、网卡。

套接字中记录了用于控制通信操作的各种控制信息,协议栈根据套接字中记录的控制信息来工作。

浏览器调用socket的过程如下:

  1. 创建套接字,为套接字分配内存空间,写入初始状态。
  2. 将表示套接字的描述符告知应用程序。
  3. 应用程序收到描述符后进行通信,每次首发数据委托时需要提供该描述符。

2.2连接服务器

连接 连接是指将服务器的IP地址和端口号等信息告知协议栈,客户端向服务器传达开始通信的请求;分配缓冲区。

通信操作中的控制信息分为头部中记录的信息和套接字中记录的信息。其中,头部信息是客户端和服务器相互联络时交换的控制信息,在整个通信过程中都需要;套接字中的控制信息则用来控制协议栈操作的信息。

2.3收发数据

协议栈并不会马上将收到的数据发送出去,会先将数据包存放在发送缓冲区中。积累多少数据再发送根据以下两个要素进行判断。两个要素之间存在冲突,也给了操作系统一定的灵活性。

  1. 每个网络包能容纳的数据长度。
    1. MTU:一个网络包的最大长度,以太网中一般为1500字节
    2. MSS:除去头部之后,一个网络包所能容纳的TCP数据的最大长度
  2. 时间,根据协议栈内部计时器的限时进行发送

TCP模块拆分数据的过程中会计算数据相当于从头开始的第几个字节,写于TCP头部中,即“序号”。SYN控制位设为1并设置序号字段的值,告知对方该序号是什么。ACK号可以确认网络包已收到,在返回ACK号时,除了设置ACK号的值外还需要将控制位中的ACK比特设为1,表示ACK号字段有效。

数据双向传输时的情况
在这里插入图片描述
数据单向传输时的情况
在这里插入图片描述

首先,协议栈会检查收到的数据块和TCP头部的内容,判断是否有数据丢失,如果没有问题则返回ACK号。然后,协议栈将数据块暂存到接收缓冲区中,并将数据块按顺序连接起来还原出原始的数据,最后将数据交给应用程序。具体来说,协议栈会将接收到的数据复制到应用程序指定的内存地址中,然后将控制流程交回应用程序。将数据交给应用程序之后,协议栈还需要找到合适的时机向发送方发送窗口更新。

2.4从服务器断开并删除套接字

完成数据发送的一方断开发起断开过程。调用Socket库的close程序,服务器协议栈会生成包含断开信息的TCP头部,将控制位中的FIN比特设为1。收到服务器的消息后,客户端返回一个ACK号告知已收到FIN为1的包。而后,客户端告知服务器数据已全部接收,生成一个FIN比特为1的TCP包,服务器返回ACK号,整个通信过程结束。

2.5IP与以太网的包收发操作

终端节点:发送方和接收方;中间/转发节点:转发设备。

路由器根据目标地址判断下一个路由器的位置;集线器在子网中将网络包传输到下一个路由。也可以理解为:IP协议根据目标地址判断下一个IP转发设备的位置;子网中的以太网协议将包传输到下一个转发设备。

IP和负责传输的网络(以太网)分开的原因:可以更好地根据需要使用各种通信技术。像互联网这样庞大复杂的网络,在架构上需要保证灵活性。

IP部分工作

IP模块负责添加如下两个头部:MAC头部和IP头部,各头部包含各自的地址。

IP头部的“接收方IP地址”填写通信对象的IP地址。发送方IP地址需要判断发送所使用的网卡,并填写该网卡的IP地址。根据路由表Gateway栏的内容判断应该把包发给谁。

在这里插入图片描述

接收方MAC头部较难获取。可以通过ARP广播机制对所有设备提问,对应IP的以太网设备会响应其MAC地址。在发送查询前先使用ARP缓存进行查询。

网卡部分工作

网卡将包转换成电信号并发送到网线中去。网卡驱动从IP模块中获取包之后,将其复制到网卡内的缓冲区中,然后向MAC模块发送发送包的命令,MAC开始工作。

在这里插入图片描述

报头:确定包的读取时机。FCS:检查包传输过程中因噪声导致的波形紊乱、数据错误。通过公式对包中从头到尾所有内容进行计算得出。

网卡的MAC模块生成通用信号,然后由PHY(MAU)模块转换成可在网线中传输的格式,并通过网线发送出去。

接收信号时,PHY模块先将信号转换成通用格式并发送给MAC模块,MAC再转换为数字信息放到缓冲区中。到达信号末尾时,需要检查FCS,如果FCS检查未通过则作为错误包丢弃该数据包。FCS检查无误,则看MAC头部是否数据包是发给自己的。

三、从网线到网络设备

3.1信号在网线和集线器中传输

网络包进入互联网的流程:客户端——>集线器——>交换机——>路由器——>互联网。

双绞线对噪声的抑制:1. 通过两根信号线的缠绕抵消外源性噪声;2.通过改变节距抑制内源性噪声。

集线器将信号发送给所有连接在它上面的线路。

3.2交换机的包转发操作

交换机的设计是将网络包原样转发到目的地。交换机的每个端口相当于计算机上的一块网卡。但网卡本身有MAC地址,交换机端口不具备MAC地址,只是如实转发。然后,交换机根据MAC地址表查找MAC地址,将信号发送到相应的端口。

MAC地址表的维护:1.收到包后将发送方MAC地址和输入端口的号码写入MAC地址表。2.删除地址表中某条记录的操作,即将一段时间不使用的过时记录从表中删除。

交换机可以同时转发多个包。

3.3路由器的包转发知识

路由器基于IP设计,交换机基于以太网设计。路由器包括转发模块(负责判断包的转发目的地)和端口模块(负责收发操作)。其子网掩码列只表示在匹配网络包地址时需要对比的比特数量。

与交换机的区别是:路由器各个端口都具有MAC地址和IP地址,自己能成为发送方或接收方。交换机在地址表中只匹配完全一致的记录,路由器则会忽略主机号部分,只匹配网络号部分。MAC对地址表的维护是包转发过程中的步骤,路由器的维护则由人手动维护或根据路由协议机制,由路由器自行维护路由表的记录。

路由器接受包的过程

  1. 接收网络包,包括FCS错误校验,检查MAC地址是否发给自己
  2. 丢弃MAC头部。通过路由器转发的网络包,其接收方MAC地址为路由器端口的MAC地址
  3. 按最长匹配原则进行筛选和匹配,如果只剩一条候选记录,则按此记录内容进行转发
  4. 若匹配失败,则路由器丢弃该包,通过ICMP告知发送方
  5. 找不到匹配路由时选择默认路由,子网掩码为0.00.0.0

其他工作:

  1. 更新IP头部的TTL字段(表示包的有效期,超过会被丢弃)

路由器根据分片功能拆分大网络包。相比于TCP拆分数据,TCP拆好后的数据正好装进一个包里,而分片是对一个完整的包再进行拆分的过程。分片前还需要查看IP头部中的标志字段,确认是否可以分片。

路由器判断下个转发目标

使用ARP查询下一个转发目标的MAC地址。如果路由表的网关列内容为IP则转发至此,如果为空则转发至IP头部中接收方的IP地址。

IP(路由器)负责将包送达通信对象这一整体过程,将包传输到下个路由器则有以太网(交换机)负责。

路由器的附加功能

附加功能包括地址转换与包过滤。

事先将地址和端口的关联信息添加到地址转换设备的对应表中,就可以从互联网访问内网中的设备了。

四、通过接入网进入互联网内部

接入网 连接互联网与家庭、公司网络的通信线路。

信元 非常小的数据块,开头是5个字节的头部,后面是48字节的数据,用于一种ATM的通信技术。

DSLAM 具有ATM接口,收发路由器数据使用的是原始网络包拆分后的ATM信元形式,是一种电话局用的多路ADSLModem,可以理解为多个ADSLModem整合在一个外壳里的设备。

BAS 进化型路由器,包转发设备,可以接收ATM信元,也可以将接收到的信元还原成原始的包。将收到的包前面的MAC头部和PPPoE头部丢弃,取出PPP头部以及后面的数据。在包的前面加上隧道专用头部,发送到隧道的出口。

PPPoE Point-to-Point Protocol over Ethernet,以太网的点对点协议。是将PPP消息装入以太网包进行传输的方式。

4.1ADSL接入网的结构和工作方式

互联网与家庭、公司网络之间最主要的不同点:距离不同、路由维护的方式不同。

用户端路由器发出的网络包通过ADSLModem和电话线到达电话局,然后到达ADSL的网络运营商(即ISP,互联网服务提供商)。网络包会加上MAC头部、PPPoE头部、PPP头部总共3种头部,然后按照以太网规则转换成电信号后被发送出去(PPPoE方式下)。

ADSLModem会把包拆分成很多小格子,每个小格子称为一个信元。然后将信元转换成信号,使用调制(正弦波对信号合成来表示0和1,ASDL采用的是振幅调制ASK和相位调制PSK相结合的正交振幅调制QAM方式)技术,同时通过使用多个波来提高速率。

ADSLModem将信元转换成电信号后进入分离器,从分离器出来后通过室内电话线,到达大楼的IDF和MDF,后进入电线杆上架设的电话电缆到电话局,再经过配线盘、分离器到达DSLAM被还原成数字信息即信元。信元从DSLAM出来后,到达BAS包转发设备,将信元还原成原始的包,在包的前面加上隧道专用头部,发送到隧道出口即转发到互联网内部。

4.2光纤接入网(FTTH)

光纤是由一种双层结构的纤维状透明材质(玻璃和塑料)构成的,通过在里面的纤芯中传导光信号来传输数字信息。ADSL信号是由多个频段的信号组成的,比较复杂,但光信号却非常简单,亮表示1,暗表示0。

4.3接入网中使用的PPP和隧道

PPP拨号上网的工作方式:1.用户向运营商的接入点拨打电话,接通后输入用户名和密码进行登录。2.用户名和密码通过RADIUS协议从RAS发送到认证服务器,服务器进行校验。3.校验争取,服务器返回IP地址等配置信息并下发用户。4.用户根据信息进行配置,准备发送TCP/IP包。

在这里插入图片描述

ADSL和FTTH本不需要验证用户身份,因为用户和BAS通过电缆或光纤固定,但用户名和密码可以切换运营商。传输PPP消息借用了HDLC协议作为容器进行传输,但ADSL和FTTH不能使用HDLC,因此用以太网包代替HDLC。以太网和PPP设计不同,因此重新设计了PPPoE。


接入网发展到ADSL和FTTH后,接入网连接的路由器进化发展为BAS。功能如下列:

  1. 用户认证与配置下发。使用接入网需要用户名和密码,BAS为登录操作的窗口,使用PPPoE/PPPoA来实现本功能。(PPPoE由传统电话拨号上网上使用的PPP协议发展而来,PPP协议见上文)
  2. 使用隧道方式来传输网络包。隧道类似于套接字之间建立的TCP连接,网络包通过隧道,可以将接入网一直延伸到运营商路由器。

接入网整体工作流程

  1. 接入路由器配置运营商分配的用户名和密码。
  2. 接入路由器根据PPPoE的发现机制寻找BAS,获得BAS的MAC地址。
  3. 用户认证和下发配置
    1. 用户名和密码如何发送给BAS?
      1. 加密的CHAP方式(推荐)
      2. 不加密的PAP方式(明文传输)
    2. 校验密码之后BAS如何下发TCP/IP配置信息?
      1. 下发的信息包括分配给上网设备的IP地址、DNS服务器的IP地址以及默认网关的IP地址
  4. 客户端开始发送用来访问互联网的网络包,包按照PPPoE规则转发。

在这里插入图片描述

一对一连接的端口可以不分配IP地址,这种方式成为无编号。


4.4网络运营商的内部

在这里插入图片描述

POP 接入点,互联网入口。ADSL、FTTH等接入网与用户签约的运营商设备相连,这些设备称为POP。POP中包括各种类型的路由器,路由器的基本工作方式是相同的,但根据其角色分成了不同的类型。

POP类型概览

  1. 专线:无需用户认证、配置下发等功能,一般路由器直接接入。
  2. 拨号接入:电话/ISDN接入,称为RAS。
  3. PPPoE方式下的ADSL和FTTH,使用BAS,运营商路由器与BAS相连。

NOC(Network Operation Center网络运行中心),从POP传来的网络包都会集中到这里,并从这里被转发到离目的地更近的POP或其他运营商。需配备高性能的路由器。

NOC里面也可以配备连接接入网的路由器,很多情况下是和POP共用的。可以简单地认为,NOC就是规模扩大后的POP。

4.5跨越运营商的网络包

运营商之间的路由信息交换:只要让相连的路由器告知路由信息就可以了。只要获得了对方的路由信息,就可以知道对方路由器连接的所有网络,将这些信息写入自己的路由表中,也就可以向那些网络发送包了。获得对方路由后就将自身路由也告知对方,该过程由路由器自动完成,机制为BGP

转接:将互联网所有路由都告知;对等:仅将各自网络相关的路由信息告知对方。

互联网的路由交换机制

  1. 指定路由交换的对象
  2. 判断路由的多个因素,如是否最短,优先级等

IX 互联网交换中心,即一个中心设备,减少线路数量,其他运营商均连接至IX。具有自主发电设备,一定的抗震能力。可以简单认为IX的核心是大型高速交换机。

五、服务器端的局域网中有什么玄机

5.1Web服务器的部署地点

公司或数据中心。

防火墙 只允许发往指定服务器的指定应用程序的网络包通过,屏蔽其他不允许通过的包。

5.2防火墙的结构和原理

以包过滤方式为例。

通过判断TCP控制位进行过滤。在建立连接时SYN为1,ACK为0,反向判断是从Web发送到互联网的请求而非Web响应互联网的请求。

在这里插入图片描述

若包中含有特定数据,防火墙就无法发现,会引起服务器宕机。因为防火墙不检查包的内容。

5.3通过将请求平均分配给多台服务器来平衡负载

轮询:当访问服务器时,客户端需要先向DNSS服务器查询服务器的IP地址,如果DNS服务器中填写多个名称相同的记录,则每次查询时DNS都会按顺序返回不同的IP地址。问题:若操作需要跨多个页面,服务器发生了变化这个操作就无法继续。

负载均衡器:使用负载均衡器的IP地址代替Web服务器的实际地址注册到DNS服务器上(增加一个中间处理者,让负载均衡器来判断)。若页面之间有关联,则在头部字段中加上用来判断相关性的信息(cookie)。

5.4使用缓存服务器分担负载

缓存服务器 通过代理机制对数据进行缓存的服务器,代理介于Web服务器和客户端之间,具有对Web服务器访问进行中转的功能。

缓存服务器工作过程:

  1. 在DNS服务器中注册
  2. 客户端向缓存服务器发送HTTP请求,缓存服务器接收请求
  3. 检查数据是否已在缓存中,在HTTP头部添加Via字段,表示该消息经过缓存服务器的转发,然后将消息发送给Web服务器。若缓存服务器对应了多个Web服务器,则可以根据请求消息的URI中的目录名进行判断。
    1. 若请求数据无变化,返回If-Modified-Since头部字段表明无变化(304),缓存服务器将缓存数据返回客户端。
    2. 若数据有变化则从服务器上返回最新版本数据。

正向代理

接收客户端的请求,转发到互联网中,利用其缓存则可以直接获得其中访问过的数据,提升访问速度。代理在转发过程中可以查看请求内容,因此也可以实现防火墙。没有代理时,浏览器提取域名后的文件名或目录名,有代理时则直接请求完整网址交由代理处理。

反向代理

通过将请求消息中的URI中的目录名与Web服务器进行关联,使得代理能够转发一般的不包含完整网址的请求消息。如缓存服务器。

透明代理

缓存服务器可以查看请求消息的包头部来判断转发目标。

5.5内容分发服务

缓存在服务器时减轻了Web服务器的负载但无法减少互联网中的流量,因此在大图片或视频的时候将缓存置于客户端会更有效。

内容分发服务 负责部署缓存服务器并租借给Web服务器运营者的厂商,称为CDSP。

如何找到最近的缓存服务器?

一是在DNS返回Web服务器的IP地址时,对返回内容进行加工,使其返回距离客户端最近的服务器的IP地址。具体方法:1.从缓存服务器部署地点的路由器收集路由信息。2.查询从本机到客户端DNS的路由信息,估算距离。

二是利用HTTP中的Location字段,重定向分配到最近的缓存服务器。重定向服务器和刚才一种方法中的DNS服务器一样,收集了来自各个路由器的路由信息,并根据这些信息找到最近的缓存服务器,然后将缓存服务器的地址放到Location字段中返回响应。这种方法增加了HTTP消息的交互此时,开销大,但精度高。

三是可以通过网络包往返时间估算缓存服务器的距离脚本。

六、请求到达Web服务器,响应返回浏览器

6.1服务器概览

服务器与客户端在网络相关的部分并无二致,客户端发起连接操作,服务器则是等待连接操作。

等待着的套接字:等待的套接字如果等到了客户端的包,就会返回相应包并开始接受连接操作。接下来,协议栈会给等待连接的套接字复制一个副本,然后将连接对象等控制信息写入新的套接字中。复制完副本后,以等待连接的状态继续存在,再次调用accept时,再次执行接受连接操作。

创建新套接字时的端口号:新创建的套接字副本必须和原来的等待连接的套接字具有相同的端口号。但端口号是用来识别套接字的,如果一个端口号对应多个套接字就无法通过端口号定位到套接字了。因此,在确定某个套接字时,不仅使用服务器端套接字对应的端口号,还同时使用客户端的端口号加IP地址进行判断。即客户端和服务器的端口号和IP地址4种信息。

使用描述符的原因:套接字刚刚创建好,还没建立连接的状态下,这4种信息是不安全的,且描述符比上述4种信息的描述要更简单。

6.2服务器的接收操作

在这里插入图片描述

服务器的接收步骤

  1. 网卡接收到信号,还原成数字信息。
  2. 根据FCS校验错误,与包末尾的FCS值进行比较。
  3. 检查MAC头部中的接收方MAC地址,看包是否是发给自己的。
  4. 还原后的数字信息保存在网卡内部的缓冲区中,以上操作由MAC模块完成。
  5. 网卡通过中断将网络包到达的信息告知CPU,CPU切换到网卡的任务,网卡驱动开始 运行。
  6. 从网卡缓冲区中读取接收的包,根据MAC头部的以太类型字段判断协议的种类,并调用负责处理该协议的软件,如IP协议,调用并转交包给TCP/IP协议栈。
  7. IP模块工作,检查IP头部。确认包的归属,转发或保留,检查包是否分片,是否需要重组。检查协议号字段,转发给TCP模块或UDP模块。
  8. TCP模块开始处理连接包。SYN为1,执行接受连接的操作,检查包接收方的端口号,确认是否有对应端口号等待连接的套接字,若没有则向客户端报错。
  9. 若存在等待连接的套接字,为其复制新副本,写入新的套接字中,分配收发缓冲区的内存空间,生成ACK号委托IP发送给客户端。客户端返回接收确认的ACK号,连接操作完成。
  10. 连接创建完成,TCP处理数据包。检查对应套接字(即收发方IP和端口号信息均满足的套接字),确定数据收发操作是否正常。根据头部中的序号判断是否存放至缓冲区中,还原成分包前的状态。数据进入缓冲区后,生成应答给客户端的ACK号。
  11. 服务器调用Socket库的close,TCP生成控制位FIN为1的TCP头部,委托IP发送给客户端,客户端返回ACK号,客户端调用close,同样生成FIN为1的TCP头部发送给服务器,服务器返回给ACK号,断开操作就完成了。
  12. 断开后,套接字经过一段时间后被删除。

6.3Web服务器程序解释请求消息并作出响应

在Web服务器中,read获取的数据内容就是HTTP请求消息。服务器会根据收到的请求消息中的内容进行相应的处理,并生成响应消息,再通过write返回给客户端。消息主要包括“方法”和表示数据源的URI(文件路径名)

GET:从文件中读出HTML文档,作为响应消息返回即可。其中,Web服务器公开的目录其实并不是磁盘上的实际目录,而是虚拟目录,需要查询虚拟目录和实际目录的对应关系并转换URI后才能读取文件并返回数据。

运行CGI程序:检查URI指定的文件名,判断是否为程序,一般通过文件扩展名进行判断。Web服务器程序在组装网络包、还原数据之后,会运行(委托操作系统运行)其中指定的程序,将数据传递给已运行的程序。

Web服务器的访问控制:1.客户端IP地址;2.客户端域名;3.用户名和密码。对于用户名和密码这种方式,Web服务器会向用户发送一条响应消息,告诉用户需要在请求消息中放入用户名和密码,然后再将和用户输入的信息重新发送给服务器。

6.4浏览器接收响应消息并显示内容

首先判断响应消息数据属于哪个类型和编码方式。Content-Type: text/html;charset=utf-8

  • 1
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值