为了能够理解HTTP,我们需要先了解TCP/IP协议簇.通常意义上,我们使用的网络是在TCP/IP协议簇的基础上运作的,而HTTP属于它内部的一个子集
计算机与网络设备需要通信,双方就必须要基于相同的方法,例如使用什么语言进行沟通,由哪一方发起通信等等,所有的这一切都需要规则.而我们把这些规则称之为协议(protocol).在协议中规定了很多的内容,如选址方法,双方建立通信的顺序等,其中这些协议包括(ICMP,DNS,TCP,FTP,HTTP,SNMP,PPPoE,IP,FDDI)等等,通常我们把TCP/IP认为是在IP协议的通信过程中使用到的协议簇的统称
TCP协议簇里面最重要的一点就是分层设计:按照层次分别分为应用层、传输层、网络层和数据链路层.其中与HTTP关系密切的协议有TCP,IP和DNS
-
以下就是关于TCP/IP协议簇的层级结构示意图
1)IP协议
按照层次划分,IP网络协议位于网络层.IP协议的作用就是把各种数据包传送给对象
2)TCP协议
按照层次划分,TCP协议位于传输层,提供了可靠的字节流服务.字节流服务指的是:为了方便传输,把大块的数据分割成为以报文段为单位的数据包进行管理.且TCP协议能够确认数据是否已经送达到对方
三次握手:为了准确无误的将数据送达到目的地,TCP采用了三次握手的策略.握手过程使用TCP的标志(flag)-SYN(synchronize)和ACK(acknownledgement).
- 1.发送端首先发送一个带SYN标志的数据包给对方.
- 2.接收端接收到后,回传一个带有SYN/ACK标志的数据包,以示传达确切的信息.
- 3.最终发送端再回传一个带有ACK标志的数据包,表示[握手]过程结束
3)DNS
DNS服务和HTTP协议一样位于应用层,它提供了从域名到IP地址之间的解析服务