HTTP的那些事(一)
HTTP的那些事
WEB网络基础
TCP/IP
TCP/IP协议族分为以下4层:应用层、传输层、网络层和数据链路层
应用层:向用户提供通信活动
传输层:网络中的两台计算机的数据传输
网络层:处理在网络上的流动数据包,在众多的选项内选择一条传输线
链路层:处理连接网络的硬件部分
发送端在层与层之间传输数据的时候,每经过一层必定会被打上一个该层所属的对应信息,例如TCP首部和IP首部、以太网首部,而在接收端在层与层之间传输数据的时候,每经过一层时会把对应的首部消去。
这种把数据包装起来的做法称为封装。
与HTTP关系密切的协议
IP: 位于网络层,注意IP其实是一种协议的名称,IP协议中最重要的两个条件就是IP地址和MAC地址,IP地址指明了节点被分配的地址,而MAC地址是指网卡所属的固定地址,IP地址可变但MAC基本不变。中转时靠的就是MAC地址。IP通信依赖MAC地址,其中ARP协议可以通过IP反查MAC地址。
DNS: 位于应用层,又名域名解析服务,将域名映射成IP地址。
TCP: 位于传输层,提供可靠的字节流服务,将数据分割成报文段为单位的数据包进行管理,并能够明确最终是否发给对方。
TCP----三次握手协议:
SYN(synchronize)
ACK(acknowledgement)
URI与URL :统一资源标识符和统一资源定位符
URL是URI的子集,也就是说URL是URI的一部分,URI标明了互联网上的资源,而URL表示这个资源在哪里。
一个URI举例:
HTTP协议
http方法
方法 | 说明 |
---|---|
GET | 获取某个资源,REST中查询操作 |
POST | 添加某个资源,REST中保存操作 |
DELETE | 删除某个资源,REST中删除操作 |
PUT | 修改某个资源,REST中修改操作 |
HEAD | 与GET相似,但是不返回报文主题部分,用以确认URI的有效性及资源更新的日期时间等 |
OPTIONS | 查询某个URI资源支持的方法 |
TRACE | 查询发送的请求是如何加工/修改的 (数据会经过代理服务器中转) |
CONNECT | 在与代理服务器通信时建立隧道,实现用隧道协议进行通信 |
值得注意得是http不能保存之前已发送的状态
持久连接和管线化
持久连接:只要一端没有明确提出断开连接,则保持TCP连接状态
持久连接能够有效减少TCP连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。
管线化:发送请求后,无须等待接收端响应这个请求便能够继续发送额外的请求,能够做到同时并行发送多个请求。
Cookie状态管理
因为http协议是不能够保存状态的,因此cookie技术的出现能够通过在请求和响应报文中写入Cookie信息来控制客户端的状态。
流程图如下: