HTTP

HTTP

超文本传输协议,web是建立在HTTP协议上通信的

被创建出来目的是为了解决文本传输的问题。现在被运用到各种场景

我们使用的网络是在TCP/IP的基础上运作的。而HTTP属于它内部的一个子集。

TCP/IP

TCP/IP是互联网相关的各类协议族的总称。但还有别的两种说法是1.TCP和IP这两种协议2.是在IP协议的通信过程中,使用到的协议族的统称。

TCP/IP分四层:应用层传输层网络层数据链路层

层次化的好处:比如某个地方需要改变设计时,就必须把所有部分整体替换掉。而分层后只需要把变动的层替换掉即可

应用层:

决定了向用户提供应用服务时通信的活动。

比如FTP(文件传输协议),DNS(域名服务协议),HTTP协议也在此层

传输层:

提供处于网络连接中的两台计算机之间的数据传输。

比如TCP(传输控制协议)和UDP(用户数据报协议)

网络层:

数据包是网络传输的最小数据单位,其作用处理在网络上流动的数据包,并在众多的选项内选择一条传输路线(寻找MAC地址)。

链路层:

用来处理连接网络的硬件部分。如操作系统,硬件各种设施,光纤等。硬件上的范畴均在链路层的作用范围内。

TCP/IP的传输过程

发送端利用封装的做法,把HTTP请求每经过一层都打上一个属于该层的首部信息。而接收端相反是每经过一层就把对应的首部消去。当传输到应用层,才能算真正接收到客户端发送过来的HTTP请求。

与HTTP密不可分的协议:IP,TCP和DNS。

IP协议:

位于网络层,作用是把各种数据包传送给对方。需要满足确认IP地址和MAC地址两个条件,才能准确传送给对方。

IP地址指明了分配到的地址,MAC地址是指网卡所属的固定地址。IP可以和MAC进行配对。IP可以变换,MAC基本上不会改变。

IP如何找到MAC地址是通过ARP协议,根据IP地址反查MAC地址。但是通常网络中需要中转,中转时有各种各样设备选择,这时有一种机制叫路由选择,获取粗略的传输路线。

TCP协议:

位于传输层,作用把大数据分割成小数据更容易传输,并且可以准确送达到对方(把大数据分成报文段为单位的数据包)。

准确数据送达目标的方法:三次握手

  •   第一次握手,client发送SYN(syn=j)包到server,传达信息:“你好,我想建立连接”,并进入SYN_SEND状态,等待服务器确认;
  •   第二次握手,server收到SYN包,必须确认客户的SYN(ack=j+1),同时也发送一个SYN包(syn=k)即SYN+ACK报文,传达信息:“好的,可以建立链接”,此时服务器进入SYN_RECV状态;
  •   第三次握手,client收到server的SYN+ACK包,回传包ACK(ack=k+1),传到信息:“好的,我知道了,那我们连接”,此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

  然后就建立连接了。为什么会采用三次握手,若采用二次握手可以吗?或者四次甚至更多?

DNS服务:

和HTTP协议已于位于应用层。作业是提供域名到IP地址之间(正向和逆向)的解析服务。

总结三种协议和HTTP协议的关系:

URI和URL

URL就是我们平时说的网址,而URI用来在某一规则下能把一个资源独一无二地标识出来的定位标识符。

  • URI(Uniform Resource Indentifier,统一资源标识符)
  • URL(Uniform Resource Locator,统一资源定位符)
  • URN(Uniform Resource Name,统一资源名称),例如 urn:isbn:0-486-27557-4 。

URI 包含 URL 和 URN,目前 WEB 只有 URL 比较流行,所以见到的基本都是 URL。

原文地址:https://www.cnblogs.com/furaywww/p/8627821.html