《图解HTTP》读书笔记
TCP/IP 协议族
TCP/IP 协议族按层次分为以下4层:应用层、传输层、网络层和数据链路层。
应用层决定了向用户提供应用服务时通信的活动。DNS服务、HTTP协议处于该层。
传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。TCP协议处于该层。
网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径到达对方的计算机,并把数据包传给对方。IP网际协议位于该层。
链路层用来处理链接网络的硬件部分。包括操作系统、硬件驱动等。
IP协议
IP网际协议位于网络层。IP协议的作用是把各种数据包传送给对方。而要保证确实传送到对方那里,则需要满足各类条件。其中两个重要的条件是IP地址和MAC地址。
IP地址指明了节点被分配到的地址,MAC地址是指网卡所属的固定地址。IP地址可以和MAC地址进行配对。IP地址可变换,但MAC地址基本上不会改变。
TCP协议
TCP协议位于传输层,提供可靠的字节流服务。
所谓的字节流服务(Byte Stream Service)是指,为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理。而可靠的传输服务是指,能够把数据准确可靠的传给对方。一言以蔽之,TCP协议为了更容易传送大数据才把数据分割,而且TCP协议能够确认数据最终是否送达到对方。
三次握手(three-way handshaking)
为了准确无误地将数据送达目标处,TCP协议采用了三次握手策略。
发送端发送一个带SYN标志的数据包给对方 --> 接受端收到后传回一个带SYN/ACK标志的数据包以示传达确认信息 --> 发送端再传回一个带ACK标志的数据包表示握手结束
DNS服务
DNS服务位于应用层。提供域名到IP地址之间的解析服务。
整个服务的流程
客户端请求一个网址 --> DNS把域名解析为IP地址 --> HTTP生成针对目标Web服务器的HTTP请求报文 --> TCP将HTTP请求报文分割成报文段按序号传输 --> IP协议负责搜索对方的地址边中转边传送 --> TCP从对方那里接受报文段并重组成报文 --> HTTP对请求的内容进行处理 --> 请求的处理结果也按照这个流程返回客户端
HTTP 协议
HTTP 方法
方法 | 作用 | 说明 |
---|---|---|
GET | 获取资源 | |
POST | 传输实体主体 | 一般用于提交需要存储的信息 |
HEAD | 获取报文首部 | 和GET一样,只是不返回报文主体部分 |
DELETE | 删除文件 | |
OPTIONS | 询问支持的方法 |
持久连接
在HTTP/1.1中,所有的连接默认都是持久连接
HTTP 状态码
状态码 | 类别 |
---|---|
2** | 成功 |
3** | 重定向 |
4** | 客户端错误 |
5** | 服务端错误 |