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

原创
陈琦
2021-05-25 14:10:30
2506
摘要:介绍常用的网络服务协议。

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


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

macbook:~ aaron$ ping baidu.com
PING baidu.com (39.156.69.79): 56 data bytes
64 bytes from 39.156.69.79: icmp_seq=0 ttl=49 time=33.982 ms
64 bytes from 39.156.69.79: icmp_seq=1 ttl=49 time=34.098 ms
64 bytes from 39.156.69.79: icmp_seq=2 ttl=49 time=34.129 ms
--- baidu.com ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 33.982/34.070/34.129/0.063 ms

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

macbook:~ aaron$ ping baidu.com
PING baidu.com (39.156.69.79): 56 data bytes
64 bytes from 39.156.69.79: icmp_seq=0 ttl=49 time=33.982 ms
64 bytes from 39.156.69.79: icmp_seq=1 ttl=49 time=34.098 ms
64 bytes from 39.156.69.79: icmp_seq=2 ttl=49 time=34.129 ms
--- baidu.com ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 33.982/34.070/34.129/0.063 ms

DHCP
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)用于给局域网中的主机动态分配可用的IP地址。在Windows下,使用ipconfig命令,可以查看本机所分配的IP地址,Linux下请使用ifconfig代替。

macbook:~ aaron$ ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>
    inet 127.0.0.1 netmask 0xff000000
    inet6 ::1 prefixlen 128
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
    nd6 options=201<PERFORMNUD,DAD>
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=400<CHANNEL_IO>
    ether a4:83:e7:8c:45:a1
    inet6 fe80::1867:7b0e:305b:87f2%en0 prefixlen 64 secured scopeid 0x8
    inet 192.168.0.100 netmask 0xffffff00 broadcast 192.168.0.255
    nd6 options=201<PERFORMNUD,DAD>
    media: autoselect
    status: active

此处显示了两个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(传输层)协议上实现。



Q: 如何使用DNS进行域名解析?

A: DNS将域名转换为IP地址,以便用户可以通过容易记忆的域名访问互联网资源。


Q: DHCP在网络中有什么作用?

A: DHCP动态分配IP地址给局域网中的主机,简化了网络配置管理。


Q: HTTP和HTTPS有什么区别?

A: HTTPS是在HTTP基础上实现加密,确保数据传输的安全性。

  • ai_thumbnail_81399_1759110167.png
评论列表
🍧
逃课的奔马2025-11-19 10:20:42回复
学习了不少网络协议知识,受益匪浅!

推荐阅读

测试开发之系统篇-Docker容器安装

前面文章我们讲到,容器是运行在宿主机上的一个进程,多个容器之间使用同一个宿主机上的操作系统内核。此处以Ubuntu20.04系统为例,介绍Docker容器引擎的安装过程。 安装 安装依赖。 sudo apt update sudo apt install apt-transport-https ca-certificates curl gnupg-agent softwar...
aaronchen2k 2021-07-20

测试开发之前端篇-浏览器开发者工具使用

Chrome开发者工具是浏览器內置的、用于对网页浏览有关的内容和行为进行查看和调试的工具。可使用快捷键Ctrl + Shift + J ( 在 Mac 上使用 Cmd + Opt + J) 打开,他显示在浏览器的底部,包涵了以下几个Tab的功能。 Console 控制台 用于查看日志和调试JavaScript脚本。以上是百度首页的控制台,大家可以发现开发者用日志的形式打印了一条招聘信息。 在...
aaronchen2k 2021-10-19

测试开发之网络篇-网络路由

本文展示了一个简化的办公网络,帮助你简单了解交换网络和路由网络不同的工作方式。
aaronchen2k 2021-05-25

测试开发之系统篇-安装KVM虚拟机

虚拟机(Virtual Machine)和容器(Container)是两种流行的虚拟化技术。 虚拟机模拟机器的硬件,包括了完整的操作系统和应用,它一旦被开启,预分配给它的资源将全部被占用。容器是运行在宿主机上的一个进程,多个容器之间使用同一个宿主机的操作系统内核。容器相对于虚拟机启动更快、占用资源更少,但隔离和安全性要弱于虚拟机。 测试人员为了准备不同的测试环境,往往使用可视化的VMW...
aaronchen2k 2021-06-09
返回顶部
客服头像
杨苗
高级客户经理
客服微信
13165050229
2692096539
统一服务热线 4006-8899-23
我要提问提问有任何问题,您都可以在这里提问。问题反馈反馈点击这里,让我们聆听您的建议与反馈。