关于http/tcp协议通信机制
在谈http/tcp协议通信机制之前,首先顺带说下一下网络的分层,一共分为五层,分别是:
应用层->传输层->网络互联层->网络访问层->物理层。举个通俗易懂的例子简单的说,比如你要访问百度网站www.baidu.com,你在地址栏上输入,ok回撤敲起,那么做了什么事情呢。首先,你要访问百度,是要建立在硬件设备有网线开了宽带的基础上,对吧,其实这就是所谓的(物理层),它是一个传输介质。然后找到对应那一台被我们访问的服务器的mac地址(网络访问层)进行连接,再匹配它的IP(网络互联
层)是否对应,确定了主机后,再通过端口号(传输层)访问对应的进程,由于一个进程里面有很多业务模块,而我们需要访问main模块(应用层),最终通过不同层来实现网站的访问。每个层都是相互独立,并且向下依赖,而传输层是能确定唯一主机的,因为我们可以通过mac地址、host和端口来确定唯一的一台访问主机上面的进程。
http/tcp/ip分别属于哪几层呢,http是 应用层, tcp 是传输层 ,ip是网络层。而真正要实现通信,通信能不能可靠,建立在什么机制上呢,如何确认连接,确认结束连接?这就涉及到http的请求需要三次握手四次挥手。
谈这个之前,先科普一个知识点:常见的 TCP 中的头部数据表示。
ACK:该位为 1 时,「确认应答」的字段变为有效,TCP 规定除了最初建立连接时的 SYN 包之外该位必须