HTTP相关知识点
一、网络基础TCP/IP
分层:应用层--传输层--网络层--数据链路层
- 应用层
决定了向用户提供应用服务时通信活动
应用服务:FTP,DNS,HTTP - 传输层
提供处于网络连接中的两台计算机之间的数据传输
传输层协议:TCP,UDP - 网络层(网络互连层)
这层即处理在网络上流动的数据包,数据包则是网络层上的最小数据单位。规定了通过怎样的路径到达对方计算机,并把数据包传给对方。
也就是在与对方计算机之间通过多台计算机或网络设备进行传输时,网络层起着在众多的选项内选择一条传输线路。 - 数据链路层(网络接口层)
处理网络硬件的部分。
例如操作系统,设备驱动,网络适配器,网卡,光纤等。
二、TCP/IP通信传输
image.png image.png发送端在层与层之间的传输数据时,每经过一层必定会被打上一个该层所属的首部信息,反之,接收端在层与层传输数据时,每经过一层时,会把对应的首部消去。
三、与 HTTP 关系密切的协议 : IP、TCP 和 DNS
1、负责传输的IP协议
IP(Internet Protocol)网际协议,是确保把各种数据包传给对方
- 它有两个重要的条件其中 IP 地址和 MAC 地址(Media Access Control Address)。
- 它也就是一种协议名称,可能有人会把“IP”和“IP地址”搞混
IP地址:指明了节点被分配到的地址
MAC地址:指网卡所属的固定地址
IP地址可以变换,MAC地址一般不会变化
APR协议(Address Resolution Protocol):,它是一种解析地址的协议,根据通信方的IP地址就可以查出对应的MAC地址
IP之间的通信依赖MAC地址,由于计算机在同一LAN内的情况很少,通常时经过多台计算机和网络设备中转才能连接到对方,而中转时,会利用下一站中的中转设备的MAC地址来搜索下一个中转目标,这是,会采用APR协议。
在到达通信目标前的中转过程中,那些计算机和路由器等网络设备只能获悉很粗略的传输路线,这种机制称为路由选择(routing)
2、确保可靠性的TCP协议
总是这是确保数据能达到目标。
TCP是将大块数据分割成报文段(segment)为单位的数据包进行管理,而可靠是指能够把数据准确可靠地传给对方,这也被称为字节流服务(Byte Stream Service)
TCP为了准确无误将数据送达目标处,则采用了三次握手(three-way handshaking)策略
三次握手策略
握手过程中使用了TCP的标志(flag)——SYN(synchronize)和ACK(acknowledgement)
发送端首先发送一个带SYN标志的数据包给对方,接收端收到后,回传一个带有SYN/ACK标志的数据包以传达确认信息,最后,发送端再回传一个带ACK标志的数据包,代表握手结束。
若在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包。
三次握手策略
3、负责域名解析的DNS服务
DNS(Domain Name System)服务是和HTTP协议一样的位于应用层的协议。它提供域名到IP地址之间的解析协议服务。
,四、URI和URL
URI 是 Uniform Resource Identifier
URL(Uniform Resource Locator,统一资源定位符)
URL 是 URI 的子集
URI格式
URI格式URI请求方式
image.pngHTTP协议
HTTP方法
- GET:获取资源
- POST:传输实体主体
- PUT:传输文件
- HEAD:获得报文首部
和GET方法一样,只不返回报文主体,用于确认URI的有效性 - OPTIONS:询问支持的方法
- TRACE:追踪路径
HTTP的持久连接
一次TCP连接后,进行多次请求和响应的交互
** HTTP/1.1** 中,所有的连接默认都是持久连接,
image.png
管线化
持久连接使得多数请求以管线化(pipelining)方式发送成为可能。
同时并行发送多个请求,而不需要一个接一个地等待响应了。
image.png