《图解HTTP》【1】

1. 找到本好书《图解HTTP》,这 HTTP 真的是太难啃了,今天把这本书读了一部分,简单记一下需要注意的地方,以后要详细研究.

2. 【1】TCP/IP 协议族并不是 TCP 协议和 IP 协议的组合,而是互联网各类相关的协议的总称。

【2】TCP/IP 分层管理:

(1)应用层 (2)传输层 (3)网络层 (4)网络接口层【下图摘自《图解HTTP》】

将协议分层的好处是防止各部分过于耦合,假如其中一个部分需要改动时,如果不分层采用整体结构,那么必须把所有涉及此部分的信息改动掉,而分层之后,只需要改动变动所在层即可。

  [1] 应用层:HTTP协议、DNS协议、FTP协议

  [2] 传输层:TCP协议、UDP协议

  [3] 网络层:IP协议

  [4] 网络接口层

【3】与 HTTP 协议密切相关的:IP协议、TCP协议、DNS协议

(1)IP 协议:IP 协议并不是IP地址,常说的 IP 一般指的是 IP 协议,这两者是有区别的,IP 协议的作用是将数据包传送给对方,保证数据包能传送到对方的条件:IP 地址、MAC 地址。

IP 地址一般可以变动,MAC 地址基本不会更改,是每台计算机唯一标识。在数据包传送过程中,可能还会用到 ARP 协议,可以根据 IP 地址反查出 MAC 地址。

(2)确保可靠性的 TCP 协议:位于传输层,提供可靠的字节流服务。字节流服务指的是,为了方便传输,将大块的数据分割成报文段为单位的数据包进行管理。可靠性指的是 TCP 三次握手,TCP 在把数据包送出去后,不会置之不顾,它会确认是否送达。简单来说过程如下:

  [1] 客户端发送携带 SYN 标志的数据包给服务器端

  [2] 服务器端接收到后,向客户端响应,发送一个携带 SYN/ACK 标志的数据包,ACK 表示我收到你的请求了,SYN 表示我把数据传给你。

  [3] 客户端收到响应,向服务器端发送一个 ACK 标志的数据包,表示我收到了你的响应,此次握手结束。

(3)DNS 协议:负责域名解析,将域名解析为 IP 地址,我们知道计算机识别的是数字,而人类难以记忆长串数字,因此发明了域名代替 IP 地址,但是计算机难以理解域名,因此我们在输入网址时,采用的是域名,但在计算机内部会按 IP 地址去处理。那么就需要一个协议将域名解析为对应的 IP 地址。

还有一张图说明了 以上三种协议与 HTTP 协议协作的关系,但是太长了没法放在这,《图解HTTP》 P24

3. 简单介绍了相关知识,来了解 HTTP 协议:

【1】HTTP 协议用于客户端和服务器端的通信,在应用 HTTP 协议时,必定有一方作为客户端,另一方作为服务器端。请求必定是客户端发出,响应必定是服务器端接收请求后发出。

【2】HTTP 是无状态协议,所谓 “无状态” 就是指两次 HTTP 请求之间毫无关系,HTTP 协议不保存之前请求响应的信息。为了实现保持状态的功能,引入了 Cookie 技术。

【3】HTTP 请求时,请求头中的请求 URI,要么是完整的,要么在头部字段中有 Host 字段,这样请求 URI 可以基于 Host 的字段值。

 

【4】HTTP 请求方法:GET、POST、HEAD、PUT、CONNECT、DELETE、OPTIONS、TRACE......

【5】持久连接:最初的 HTTP 协议,每次进行请求都需要 TCP 握手挥手,如果访问一个页面需要多次请求响应,那么重复的 TCP 握手挥手很消耗时间,持久连接目的在于建立起一次 TCP 连接后,可以进行多次请求响应。

【6】管线化:最初的 HTTP 协议,必须在一次请求得到响应后,才能进行下一次请求,类似于 JavaScript 中的同步机制,那么这无疑很浪费时间,由此提出管线化,类似于异步机制,可以同时并行发送多个请求。

 

posted @ 2021-10-03 18:32  TwinkleG  Views(59)  Comments(0)    收藏  举报