《图解HTTP阅读笔记》第一章 了解Web及网络基础

123 阅读5分钟

本系列笔记为笔者自己阅读时随意记录,不保证准确性,如有错误请在评论区指出。希望能把笔记尽量总结成可以直接背诵的八股~另外,笔者非科班且秋招进行时,书的内容较多,所以只记录也许对秋招有用的知识,过深的知识点以后再补齐!

第一章 了解Web及网络基础

HTTP的诞生

HTTP最早出现是为了解决文本传输的难题,但由于协议本身较简单,所以在此基础上设想了很多应用方法并投入实际使用。现在HTTP已经超出了web框架的局限,被运用到各个场景中。

网络基础 TCP/IP

通常使用的网络(包括互联网)是在TCP/IP协议族的基础上运作的。HTTP属于其内部的一个子集。

TCP/IP协议族

计算机与网络设备要相互通信,双方就必须基于相同的方法。规定双方如何通信的规则就叫协议(protocol)。

TCP/IP四层协议

TCP/IP协议族按层次分别为以下四层:应用层、传输层、网络层和数据链路层。

应用层

应用层协议:HTTPFTP(File Transfer Protocol,文本传输协议)、DNS(Domain Name System,域名系统)。

TCP/IP协议族内预存了各类通用的应用服务。应用层决定了向用户提供应用服务时通信的活动。

传输层

传输层协议:TCP(Transmission Control Protocol,传输控制协议)、UDP(User Data Protocol,用户数据报协议)。

传输层对上层应用层提供处于网络连接中的两台计算机之间的数据传输。

网络层

网络层协议:IP协议、ICMP协议、ARP协议。 网络层用来处理在网络上流动的数据包,数据包是网络传输的最小数据单位。该层规定了通过怎样的传输路径到达对方服务器,并把数据包传送给对方。与对方计算机之间通过多台计算机或者网络设备连接时,网络层的作用就是在众多可选路径中选择一条传输路线。

ICMP协议:IP协议用它来与其他主机或者路由器交换错误报文或者其他的一些情况。

ARP协议:ARP协议即地址解析协议它可以解决同一个局域网内主机或路由器的IP地址和MAC地址的映射问题。

数据链路层

数据链路层用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(网卡)及光纤等物理可见部分,硬件上的范畴均在链路层的作用范围之内。

与HTTP关系密切的协议:IP、TCP、DNS

负责传输的IP协议

几乎所有使用网络的系统都会用到IP协议,TCP/IP协议族中的IP指的是网际协议,IP协议的作用是把各种数据包传送给对方。而要保证确实传送到了对方那里,则需要满足各种条件。其中两个重要的条件是:IP地址和MAC地址。

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

IP间的通信依赖MAC地址,使用ARP协议(一种用以解析地址的协议),根据通信方IP可以反查出对应的MAC地址。

在到达通信目标之前的中转过程中, 那些计算机和路由器等网络设备只能获得很粗略的传输路线。这种机制称为路由选择(routing)。

确保可靠性的TCP协议

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

负责域名解析的DNS服务

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

计算机既可以被赋予IP地址,也可以被赋予主机名和域名。用户通常通过主机名和域名来访问对方的计算机,而不是直接通过IP地址访问。

人类容易记忆字母加数字组成的名称,但计算机比起处理名称,还是更擅长处理一长串数字。为了人类和计算机都好,DNS服务应运而生。 DNS服务提供通过域名查找IP地址,或者逆向从IP地址反查域名的服务。

各种协议与HTTP协议的关系

现在客户端发起浏览 www.xxx.com 的请求,流程及各个协议的职责如下:

graph TD
HTTP:生成针对目标Web服务器的HTTP请求报文 
--> TCP:将HTTP请求报文按序号分为多个报文段,把每个报文段可靠地传输给对方
--> IP:搜索对方地址,一边中转一边传送
--> TCP:将到达的报文段按原序号重组
--> HTTP:对Web服务器请求的内容的处理

URI和URL

URI 统一资源标识符

URI就是由某个协议方案表示的资源的定位标识符。协议方案是指访问资源所使用的协议类型名称。URL是URI的子集。