网络基础TCP/IP
通常使用的网络是TCP/IP协议族的基础上运作的,而HTTP属于它内部的一个子集。
1.1.1 TCP/IP协议族
计算机与网络设备要相互通信,双方就必须要基于相同的方法。TCP/IP协议族里重要的一点就是分层。TCP/IP协议族按照层次分别分为以下4层:应用层、传输层、网络层和数据链路层。
应用层
TCP/IP协议族内预存了各类通用的应用服务。比如FTP【文件传输协议】和DNS【域名系统】就是其中两类,当然HTTP协议也在该层。
传输层
传输层对上层应用层提供处于网络连接中的两台计算机之间的数据传输。在传输层有两个性质不同的协议:TCP【Transmission Control Protocol 传输控制协议】和UDP【User Data Protocol 用户数据报协议】
网络层
网络层用于处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径到达对方计算机,并把数据包传给对方。与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。
链路层
用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC【网络适配器俗称网卡】及光纤等物理可见部分。硬件上的范畴均在链路层的作用范围之内。
整个流程:
首先作为发送端的客户端在应用层发出一个想看某个Web页面的HTTP请求:
接着,为了传输方便,在传输层【TCP协议】把从应用层处接收到的数据【HTTP请求报文】进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。
在网络层【IP协议】增加作为通信目的地的MAC地址转发给链路层。
接受端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能算真正接收到由客户端发送过来的HTTP请求。
域名解析DNS服务
DNS【Domain Nmae System】服务是和HTTP协议一样位于应用层协议。它提供域名到IP地址之间的解析服务
HTTP1.1:
请求报文是由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成的
响应报文基本由协议版本、状态码和原因短语,以及可选的响应首部字段和实体主体构成