《图解HTTP》读书笔记(一)
# 《图解HTTP》读书笔记(一)
## 使用HTTP协议访问Web
![](https://gitee.com/simon324/img-hosting/raw/master/vueimg/BER`YDGYHVD$D5Y2]NCDB`4.png)
web使用HTTP协议作为规范,完成客户端到服务端等一系列运作流程,可以说成是web是建立在HTTP协议上通信的。
## 三项WWW构建技术
3项WWW构建技术:
1.SGML(标准通用标记语言)
2.HTML(超文本标记语言)
3.URL(统一资源定位符)
## 网络基础TCP/IP
通常使用的网络是在TCP/IP协议族的基础上运作的,HTTP属于它内部的一个子集
### TCP/IP协议族
计算机与网络设备要相互通信,双方就必须基于相同的方法,所以所有的这一切都需要一种规则,这种规则被称为协议。TCP/IP是互联网相关联的各类协议族的总称,也有说法是它是TCP协议和IP协议。
![](https://gitee.com/simon324/img-hosting/raw/master/img/54S}G[Z]EIAWDBAN$KI$GWU.png)
### TCP/IP的分层管理
TCP/IP的分层管理好处是如果互联网只由一个协议统筹,某个地方需要改变设计时,就必须把所有替换掉、而分成之后,只需要把变动的层替换掉即可。(各行其事)
#### 应用层
决定了向用户提供应用服务时通信的活动,TCP/IP协议族内预存了各类通用的应用服务,比如FTP(文本传输协议)和DNS(域名系统),HTTP协议也处于该层
#### 传输层
为应用层提供处于网络连接中的两台计算机之间的数据传输,在传输层由两个性质不同的协议:TCP协议(传输控制协议)和UDP(用户数据报协议)
#### 网络层(又名网络互连层)
用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径到达对方的计算机并把数据包传送给对方,与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多选项内选择一条传输路线。
#### 链路层(又名数据链路层,网络接口层)
包括控制操作系统、硬件的设备驱动、NIC(网卡)、及光纤等物理课件部分。硬件上的范畴均在链路层的作用范围之内。
### TCP/IP通信传输流
![](https://gitee.com/simon324/img-hosting/raw/master/img/S0J5E7AHVFMEEUTZN96N.png)
从图片中我们可以看出发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层之间传输数据时,每经过一层时会把对应层的首部信息消去。这种把数据信息包装起来的做法称为封装。
## 与HTTP关系密切的协议:IP、TCP和DNS
### IP
网际协议位于网络层,作用是把各种数据包传送给对方。而要保证确实传送到对方哪里,需要满足各类条件,其中最重要的是IP地址和MAC地址。IP间的通信依赖MAC地址,所以就会采用ARP协议,ARP协议是一种用以解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址。
在传输过程中没人能够全面掌握互联网中的传输状况
![](https://gitee.com/simon324/img-hosting/raw/master/img/082`U35NOPD03COS3HB`BDU.png)
### TCP
TCP位于传输层,提供可靠的字节流服务。
字节流服务是指:为了方便传输,将大块的数据分割成以报文段为单位的数据包进行管理。
可靠的传输服务是指:能够把数据准确可靠地传送给对方。
这就产生了TCP的三次握手策略。
![](https://gitee.com/simon324/img-hosting/raw/master/img/FOE_62WA5TI4SCOEUMU5.png)
SYN和ACK都是TCP的标志,如果在握手过程中的某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包。
### 负责域名解析的DNS服务
DNS服务和HTTP协议一样位于应用层,用于提供域名到IP地址之间的解析服务。
![](https://gitee.com/simon324/img-hosting/raw/master/img/IMI5RT1_N_GKQLSINO_0.png)
## 关于在地址栏输入一个URL
1. DNS解析域名,把域名对应的IP地址传给客户端
1. HTTP协议负责生成针对目标服务器的HTTP请求报文
1. TCP协议负责把HTTP报文按序分割成报文段,把每个报文段有序可靠的传送给对方
1. 如果需要中转由IP协议来负责(IP协议搜索对方的地址,一边中转一边传送)
1. 服务器的TCP协议负责接收对方传送来的报文段,并按序将这些报文段重组
1. 服务器的HTTP协议负责对请求内容进行处理
![](https://gitee.com/simon324/img-hosting/raw/master/img/WH`_AP(QW0@}OKNW$BTYP~4.png)