1

测试开发之网络篇-常用服务协议

 3 years ago
source link: https://my.oschina.net/candou/blog/5081811
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

协议,是网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。它的三要素是:语法、语义、时序。
(1)语法:即数据与控制信息的结构或格式;
(2)语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;
(3)时序(同步),即事件实现顺序的详细说明。

TCP/IP

TCP/IP协议是当今互联网所采用的协议。它不仅包含TCP、IP两个部分,而是由FTP、SMTP、TCP、UDP、IP等协议构成的一个协议簇。TCP/IP协议的第4层-网络层,负责创建主机间的网络连接,以及完成基于IP的寻址和转发功能。

DNS(Domain Name System,域名系统)是一项域名解析服务。它将域名解析成IP地址,以方便大家使用容易记忆的英文字母,来访问互联网。以下示例完成了一次解析,通过ping域名,我们可以得到其IP地址。

本地域名解析

除了借助DNS,当我们通过域名访问内部服务器时,可使用本地的HOSTS文件来完成域名解析,注意这个过程是优先于DNS的。
Windows下文件为C:\WINDOWS\system32\drivers\etc\hosts,Linux下在/etc/hosts,以下给出一个示例。

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(Remote Procedure Call Protocol,远程过程调用协议)多用于当下流行的微服务架构中,方便一台计算机直接调用另一台上的程序,而不需要了解底层的网络技术/协议。RPC可以基于HTTP(应用层)协议,也可以直接在TCP(传输层)协议上实现


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK