HTTP学习笔记1 TCP/IP URI

HTTP(超文本传输协议 Hyper Text Transfer Protocol)

TCP/IP:IP协议的通信过程中,使用到的协议族的统称,按层次由上至下可划分为4层:应用层传输层网络层链路层

  • 应用层:向用户提供应用服务时通信的活动,例如HTTP,FTP,DNS等
  • 传输层:提供处于网络连接中两台计算机之间的数据传输,其将数据分割为多个报文数据包,并在每个数据包上打上标记序号和端口号,转发给网络层(TCP和UDP协议)
  • 网络层:处理网络上流动的数据包,确定数据包的传输路径(IP协议)
  • 链路层:处理连接网络的硬件部分,例如控制操作系统,驱动和网卡等

IP协议(网际协议):位于网络层,把网络上各种数据包传输到对方,确定传输路径(路由选择),依赖IP地址和MAC地址(Media Access Control Address)。在此过程中,本机将凭借ARP协议将IP地址解析为MAC地址进行通信,若解析失败,则将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址。请求成功后会将目标主机的IP地址和MAC地址存储在本机的ARP缓存中保留一段时间,下次请求时直接查询ARP缓存以节约资源。

TCP协议(传输控制协议):位于传输层,将数据分割成以报文段为单位的数据包进行管理,并能够把数据准确可靠地传给对方。
三次握手建立连接:

  • 客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。
  • 服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。
  • 客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。
    HTTP学习笔记1 TCP/IP URI

四次握手关闭连接:

  • 关闭请求方向另一方发送一个带有FIN附加标记的报文段
  • 接受方收到FIN报文段后,向发送方回复一个确认序号ACK,并通知自己相应的应用程序做好清理准备工作
  • 接受方清理工作完成,向发送方回复一个FIN报文段
  • 发送方收到这个FIN报文段后,向接受方发送一个确认序号ACK,表示连接彻底关闭
    HTTP学习笔记1 TCP/IP URI

DNS(Domain Name System):提供域名到IP地址之间的解析服务


URI、URL、URN
URI(统一资源标识符,Uniform Resource Identifier):用一字符串标识某一互联网上的资源
URL(统一资源定位符,Uniform Resource Locator):通过位置标识互联网上的资源,例如https://www.zjw666.top/somedir/file
URN(统一资源名称符,Uniform Resource Name):通过名称标识互联网上的资源,例如 mailto:[email protected]
URL和URN组成了URI,在Web领域,URL比URN更为常见。

绝对URI格式:
协议名+登录信息(可选)+服务器地址+服务器端口(可选)+文件路径+查询字符串+片段标识符(可选)
例如:http://user:[email protected]:80/dir/index.htm?uid=1#ch1
其中服务器地址可以是域名、IPv4(192.168.1.1)或IPv6地址([0:0:0:0:0:0:0:1])