协议,是网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。它的三要素是:语法、语义、时序。
(1) 语法:即数据与控制信息的结构或格式;
(2) 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;
(3) 时序(同步),即事件实现顺序的详细说明。
TCP/IP
TCP/IP 协议是当今互联网所采用的协议。它不仅包含 TCP、IP 两个部分,而是由 FTP、SMTP、TCP、UDP、IP 等协议构成的一个协议簇。TCP/IP 协议的第 4 层 - 网络层,负责创建主机间的网络连接,以及完成基于 IP 的寻址和转发功能。
DNS
DNS(Domain Name System,域名系统)是一项域名解析服务。它将域名解析成 IP 地址,以方便大家使用容易记忆的英文字母,来访问互联网。以下示例完成了一次解析,通过 ping 域名,我们可以得到其 IP 地址。
本地域名解析
除了借助 DNS,当我们通过域名访问内部服务器时,可使用本地的 HOSTS 文件来完成域名解析,注意这个过程是优先于 DNS 的。
Windows 下文件为 C:\WINDOWS\system32\drivers\etc\hosts,Linux 下在/etc/hosts,以下给出一个示例。
DHCP
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)用于给局域网中的主机动态分配可用的 IP 地址。在 Windows 下,使用 ipconfig 命令,可以查看本机所分配的 IP 地址,Linux 下请使用 ifconfig 代替。
此处显示了两个 IP 地址:
lo0 127.0.0.1 是用于本机内部通讯的环回地址。它是一个每台机器都相同、永远有效的虚拟机本地 IP 地址;
en0 192.168.0.100 是 DHCP 服务器为第一块以太网卡分配的动态 IP 地址。机器关机后,DHCP 会为该机器(网卡)保留此地址一段时间。
HTTP/HTTPS
HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网上使用最为广泛的一种协议。您正在使用浏览器阅读的这篇文章,就是使用该协议传输的。HTTPS 则是在其基础上,实现了加密。
HTTP/HTTPS 是一个无连接、无状态的应用层协议。也就是说,浏览器通过它向服务器发出请求获取响应后,连接就被关闭了。浏览器和服务器间,采用了一个叫做 Session(会话)的机制,使得下一个请求过来时,服务器依然知道访问者是谁。服务端识别 Session 的方法,通常是用请求 URL 或 Header 中携带的一个唯一标识(如 jsessionid、bearer token、cookie)来起作用的。后续在介绍接口测试时,我们会进一步进行阐述。
WebSocket
WebSocket 在客户端和服务器之间建立持久性的连接,允许服务端主动向客户端推送数据,以实现实时的双向数据传输。它解决了以往使用 HTTP 协议时,只能单项拉数据,或使用 HTTP 模拟长连接时,Long Polling 资源消耗过大的问题。
WebSocket 是应用层协议,是 TCP/IP 协议的子集,它在连接时通过 HTTP 协议完成握手。
RPC
RPC(Remote Procedure Call Protocol,远程过程调用协议)多用于当下流行的微服务架构中,方便一台计算机直接调用另一台上的程序,而不需要了解底层的网络技术/协议。RPC 可以基于 HTTP(应用层)协议,也可以直接在 TCP(传输层)协议上实现