HTTP的那些事(一)

WEB网络基础

TCP/IP

TCP/IP协议族分为以下4层:应用层、传输层、网络层和数据链路层

应用层:向用户提供通信活动
传输层:网络中的两台计算机的数据传输
网络层:处理在网络上的流动数据包,在众多的选项内选择一条传输线
链路层:处理连接网络的硬件部分

HTTP的那些事(一)

发送端在层与层之间传输数据的时候,每经过一层必定会被打上一个该层所属的对应信息,例如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)
HTTP的那些事(一)

URI与URL :统一资源标识符和统一资源定位符
URL是URI的子集,也就是说URL是URI的一部分,URI标明了互联网上的资源,而URL表示这个资源在哪里。

一个URI举例:
HTTP的那些事(一)

HTTP协议

http方法

方法 说明
GET 获取某个资源,REST中查询操作
POST 添加某个资源,REST中保存操作
DELETE 删除某个资源,REST中删除操作
PUT 修改某个资源,REST中修改操作
HEAD 与GET相似,但是不返回报文主题部分,用以确认URI的有效性及资源更新的日期时间等
OPTIONS 查询某个URI资源支持的方法
TRACE 查询发送的请求是如何加工/修改的 (数据会经过代理服务器中转)
CONNECT 在与代理服务器通信时建立隧道,实现用隧道协议进行通信

值得注意得是http不能保存之前已发送的状态

持久连接和管线化

持久连接:只要一端没有明确提出断开连接,则保持TCP连接状态
持久连接能够有效减少TCP连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。

管线化:发送请求后,无须等待接收端响应这个请求便能够继续发送额外的请求,能够做到同时并行发送多个请求。

Cookie状态管理

因为http协议是不能够保存状态的,因此cookie技术的出现能够通过在请求和响应报文中写入Cookie信息来控制客户端的状态。

流程图如下:
HTTP的那些事(一)