作者:手机用户2702934510 | 来源:互联网 | 2023-05-19 00:35
读书笔记之《图解HTTP》
一、了解 Web
及网络基础
(一)使用 HTTP
协议访问 Web
本书没有上面就是硬生生的讲概念,而是用一个问题引出 HTTP
:当我们在浏览器的地址栏中输入 URL
时,Web
页面是如何呈现的?
然而书上也没有很官方的给出回答,只是说信息被发往某处,然后从某处返回一个页面就是咱们看到的页面。接着说到,像这种从服务器获取文件资源等信息的,都可以被称为客户端,返回结果(响应)的被称为服务器。也就是说,客户端跟服务器之间是存在通信的,那么它们之间到底是如何通信的呢,客户端又是怎么精确的找到服务器上的资源呢?这里面一切的一切都是 HTTP
规定的,对的,HTTP
就是一个协议,它规定着客户端与服务器通信的准则。
(二)HTTP
的诞生
HTTP
协议,全称为 HyperText Transfer Protocol
意为超文本传输协议。它诞生于20世界90年代,起初诞生的设想是用于让远隔两地的研究者们共享知识。最初设想的基本理念:借助多文档之间相互关联形成的超文本,连成可相互参阅的 WWW(World Wide Web),万维网
。WWW
是浏览器当年用来浏览超文本的客户端应用程序时的名称。现在则用来表示这一系列的集合,也可以称为 Web
。
(三)网络基础 TCP/IP
要把 HTTP
说清楚还得先从 TCP/IP
开始,因为通常使用的网络(包括互联网)是在 TCP/IP
协议族的基础上运作的,而 HTTP
属于它内部的一个子集。计算机与网络设备要相互通信,双方就必须基于相同的方法。 比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎么结束通信等规则都需要事先确定。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。而我们就把这种规则称为协议。
1. 分层管理
TCP/IP
协议族里重要的一点就是分层管理。TCP/IP
协议族按层次分别分为以下4层:应用层、传输层、网络层和数据链路层。 分层是有好处的,比如,如果互联网只由一个协议统筹,某个地方需要改变设计时,就必须把所有部分整体替换掉。而分层之后只需把变动的层替换掉即可。把各层之间的接口部分规划好之后,每个层次内部的设计就能够***改动了(感觉这跟分模块开发或者说跟微服务是同一个思想,分而治之)。
-
应用层
应用层决定了向用户提供应用服务时通信的活动,HTTP
协议正是处于该层。
-
传输层
传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。
-
网络层
网络层用来处理在网络上流动的数据包。 数据包是网络传输的最小数据单位(打游戏的都知道丢包率或者丢包的概念,这里所丢的包其实就是数据包)。该层规定了通过怎样的路径到达对方计算机,并把数据包传送给对方。
-
链路层(又称为数据链路层,网络接口层)
用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动等物理可见部分。
2. TCP/IP
通信传输流
利用 TCP/IP
协议族进行网络通信时,会通过分层顺序与对方进行通信,发送端从应用层往下走,接收端则从应用层往上走。
以 HTTP
来举例:发送端的客户端在应用层发出了一个 HTTP
请求,接着,为了传输方便,在传输层把应用层收到的数据(HTTP报文
)进行分割,并在各个报文上标记序号以及端口号转发给网络层。在网络层,增加作为通信目的地的 MAC
地址后转发给链路层。接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。
发送端在层与层之间传输数据时,每经过一层必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层时会把对应的首部消去。
(四)与 HTTP
关系密切的协议:IP
、TCP
和 DNS
1. 确保可靠性的 TCP
协议
按层次分,TCP
协议位于传输层,提供可靠的字节流服务。所谓的字节流服务是指,为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理。而可靠的传输服务是指,能够把数据准确可靠地传给对方。
为了准确无误将数据送达目标处,TCP
协议采用了三次握手策略。用 TCP
协议把数据包送出去后,TCP
不会对传送后的情况置之不理,它一定会向对方确认是否成功送达。
握手过程中使用了 TCP
的标志 —— SYN
和 ACK
。发送端首先发送一个带有 SYN
标志的数据包给对方。接收端收到后,回传一个带有 SYN/ACK
标志的数据包以示传达确认信息。最后,发送端再回传一个带 ACK
标志的数据,代表握手结束。若在握手过程中某个阶段中断,TCP
协议会再次以相同的顺序发送相同的数据包。
2. 负责传输的 IP
协议
按层次分,IP
协议位于网络层,作用是把数据包传送给对方。而要确保信息传送过去则需要满足各种各样的条件,比如说最重要的条件是 IP
地址和 MAC
地址。IP
地址指明了节点被分配到的地址,MAC
地址是指网卡所属的固定地址。IP
地址可以和 MAC
地址进行配对,IP
地址可变换,但 MAC
地址基本不会改变。
IP
间的通信依赖于 MAC
地址。在网络上,通信的双方在同一局域网内的情况是很少的,通常是经过多台计算机和网络设备中转才能连接到对方。而在进行中转时,会利用下一站中转设备的 MAC
地址来搜索下一个中转目标。这时,会采用 ARP
协议。ARP
协议是一种用以解析地址的协议,根据通信方的 IP
地址就可以反查出对应的 MAC
地址。
3. 负责域名解析的 DNS
服务
DNS
,全称为 Domain Name System
,意为:域名系统,是和 HTTP
协议一样位于应用层的协议。它提供域名到 IP
地址之间的解析服务。
4. HTTP
与各种协议的关系
待续~