HTTP学习笔记

image-1659957438668

什么是TCP/IP
TCP/IP是对基于互联网相关协议集合的统称。我们常用的HTTP协议就属于TCP/IP协议的子集。

什么是TCP/IP协议族
TCP/IP协议族,顾名思义,如同某个家族一样,包含了很多成员,而协议族中则包含了多个协议。常见的协议有:TCP、IP、HTTP、DNS、FTP、UDP、IEEE 802.3、PPPoE等等…

什么是网络协议
协议,是指某些人就一定问题经谈判、协商之后达成的共同决定。就网络协议而言,要使不同硬件及不同操作系统的计算机在网络上通信,就必须要达成一致的协议。比如说,如何探测到通信目标、由哪一边先发起通信、使用哪种语言通信、怎样通信结束等等,都需要事先确定,这里的一切都需要规则。而我们就把这种规则称之为协议。

TCP/IP分层管理
TCP/IP协议族按层次可分为以下四层:

  • 应用层
    TCP/IP协议族内预存了各类通用的应用服务。比如FTP和DNS,还有HTTP协议也属于该层
  • 传输层
    传输层对应上层的应用层,提供处于网络连接中的计算机之间的数据传输。在传输层有两个性质不同的协议:TCP和UDP
  • 网络层
    网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层定义了通过怎样的路径到达对方计算机,并把数据传送给对方。
  • 链路层
    用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(网络适配器,即网卡),及光纤等物理可见的部分。硬件上的范畴均属于链路层的作用范围之内。

TCP/IP通信传输流
利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则从链路层网上走。

image-1659957470374

发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层时会把对应的首部消去。

image-1659957495351

IP协议

IP协议位于网络层,作用是把各种数据包传送给对方。而要确保传送到对方,需要两个很重要的条件,IP地址和MAC地址。

IP 地址指明了节点被分配到的地址,MAC 地址是指网卡所属的固定地址。IP 地址可以和 MAC 地址进行配对。IP 地址可变换,但 MAC地址基本上不会更改。

使用ARP协议凭借MAC地址进行通信

IP 间的通信依赖 MAC 地址。在网络上,通信的双方在同一局域网(LAN)内的情况是很少的,通常是经过多台计算机和网络设备中转才能连接到对方。而在进行中转时,会利用下一站中转设备的 MAC 地址来搜索下一个中转目标。这时,会采用 ARP 协议(Address ResolutionProtocol )。 ARP 是一种用以解析地址的协议,根据通信方的 IP 地址就可以反查出对应的 MAC 地址。

image-1659957550681

TCP协议

按层次分,TCP 位于传输层,提供可靠的字节流服务。所谓的字节流服务(Byte Stream Service)是指,为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。而可靠的传输服务是指,能够把数据准确可靠地传给对方。一言以蔽之,TCP 协议为了更容易传送大数据才把数据分割,而且 TCP 协议能够确认数据最终是否送达到对方。

确保数据能到达目标

为了准确无误地将数据送达目标处,TCP 协议采用了三次握手(three-way handshaking)策略。用 TCP 协议把数据包送出去后,TCP不会对传送后的情况置之不理,它一定会向对方确认是否成功送达。据手过程中使用了TCP 的标志(flag)——SYN(synchronize)和ACK
(acknowledgement)。
发送端首先发送一个带 SYN 标志的数据包给对方。接收端收到后,回传一个带有 SYN/ACK 标志的数据包以示传达确认信息。最后,发送端再回传一个带 ACK 标志的数据包,代表“握手”结束。
若在握手过程中某个阶段莫名中断,TCP 协议会再次以相同的顺序发送相同的数据包。

image-1659957568468

DNS服务

DNS(Domain Name System)服务是和 HTTP 协议一样位于应用层的协议。它提供域名到 IP 地址之间的解析服务。

计算机既可以被赋予 IP 地址,也可以被赋予主机名和域名。比如www.baidu.com
用户通常使用主机名或域名来访问对方的计算机,而不是直接通过IP 地址访问。因为与 IP 地址的一组纯数字相比,用字母配合数字的表示形式来指定计算机名更符合人类的记忆习惯。
但要让计算机去理解名称,相对而言就变得困难了。因为计算机更擅长处理一长串数字。
为了解决上述的问题,DNS 服务应运而生。DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务。

image-1659957603913

各种协议与HTTP协议的关系

学习了和 HTTP 协议密不可分的 TCP/IP 协议族中的各种协议后。
我们再通过这张图来了解下 IP 协议、TCP 协议和 DNS 服务在使用HTTP 协议的通信过程中各自发挥了哪些作用。

image-1659957623497