HTTP协议
TCP/IP协议族
我们通常使用的网络,是在TCP/IP协议族上运作的。而HTTP协议就是TCP/IP内部的一个子集。
计算机与网络设备之间的通讯需要一定的规则,这种规则就称为协议。
TCP/IP就是互联网上各种协议的总称。
分层管理
TCP/IP 按层次分为四层:应用层、传输层、网络层、数据链路层。
分层的好处:
- 如果互联网有某个地方需要改变设计时,只需替换变动的层而不用全部替换。
- 设计也变得简单,每层只需完成自己的任务。
应用层
决定了向用户提供应用服务时的通信活动。
协议:
- FTP:文件传输协议
- DNS:域名系统
- HTTP:超文本传输协议
传输层
提供处于网络连接中的两台计算机之间的数据传输。
协议:
- TCP:传输控制协议
- UDP:用户数据报协议
网络层
用来处理在网络上流动的数据包。(数据包是网络传输的最小数据单位)。网络层规定了通过怎样的传输路线到达对方是计算机并传输数据包。
数据链路层
用来处理连接网络的硬件部分。
通信过程
通过分层的顺序与对方进行通信。
发送端从应用层往下走,接收端则往应用层往上走。
例如HTTP协议的通信过程
- 发送端在应用层发出HTTP请求
- 在传输层(TCP协议)把从应用层收到的HTTP请求报文进行分割,并且在各个报文上打上标记序号以及端口号转发给网络层
- 网络层增加作为通信目的地的MAC地址后转发给数据链路层。
- 接收端在数据链路层接收到数据,按次序向上发送直到应用层
注:发送端层与层传输时,每一层必定打上该层所属的首部信息【也叫封装】;接收端接收时,会一层一层脱掉。
IP、TCP 和DNS
IP
IP网际协议位于网络层
作用:把各种数据包传递给对方
传送的条件:
1️⃣IP地址 :指明节点被分配到的地址(可变换)
2️⃣MAC地址:网卡所属的固定地址(一般不会变)
📌使用ARP协议凭借MAC地址通信
IP之间的通信依赖MAC地址。因为通信的双方在同一局域网的情况是很少的。通常需要多台计算机以及网络设备中转才能连接到对方。而进行中转时,根据下一站网络设备的MAC地址搜索对方。这时使用的协议时ARP协议。
TCP
TCP位于传输层
提供可靠的字节流服务,即确保数据能够达到目标。
字节流:将数据分割成以报文段为单位的数据包
如何确保可靠?
采用三次握手,握手过程中使用TCP标识SYN和ACK
DNS
DNS是位于应用层的协议
提供域名到IP之间的解析服务
DNS协议通过域名查找IP地址,或者逆向从IP地址反查找域名。
访问一个网站的具体过程
URI和URL
URI:统一资源标识符,【即由某个协议方案表示的资源定位标识符】
例如,采用HTTP协议时,协议方案就是HTTP,此外还有ftp、mailto、telnet、file
URL:统一资源定位符,表示资源的地点。
URL是URI的子集
URI格式
绝对URI格式:
- 协议:http 或者 https
- 登录信息:指定用户名和密码作为从服务器端获取资源时必要登录信息
- 服务器地址:地址可以是域名,也可以是172.190.6.2这样的IPV4地址,也可以是[0:0:0:0:0:0:0:1]这样的IPV6地址。
- 端口号:http是80,https是443
- 带层次的文件路径:指定服务器上的路径来定位特指的资源
- 查询字符串:传参
- 片段标识符:标记出已获取资源中的子资源。
HTTP协议
HTTP协议用于客户端和服务器端的通信
通过请求和响应的交换达成通信。
请求报文
包括:
- 请求方法
- 请求URI
- 协议版本
- 请求首部字段【可选】
- 内容实体