URL&URI
URL:统一资源定位符
URI:统一资源标识符
可以说URL是URI的具体实现形式
URL的构成
一般来说,一个URL是由五个部分组成。
-
protocol : 协议
-
domain : 域名
-
port : 端口
-
path : 路径
-
URL Parameters : URL地址参数
示例:https://ke.qq.com/course/317690?_wv=2147487745&tuin=15945f87
protocol : 协议 是://前的部分都是协议部分。
协议:是通信双方对通信的数据的组织格式、规程、含义等所做的约定。
在不同的通信层(OSI和TCP/IP模型)有不同的协议,每一层的协议只负责自己本 层的数据通信。
对于接口测试而言,一般我们都是在应用层实现,即模拟应用层的协议的发包来实 现测试。
常见的应用层协议:
-
http
-
https http+ssl
-
ssh
-
ftp
-
smtp
-
pop3
(数据库)
-
mysql
-
oracle
-
MS SQL
domain : 域名,是://之后的部分,域名是我们要访问的接口的服务器的地址
地址可以是域名,IP地址,也可以是机器名。如:ke.qq.com 125.94.62.250 192.168.2.104
port : 端口,是服务器端进行设置的,用于服务器去监听客户端的请求
对于端口而言,一台机器上可用的端口是0-65535.(共65536个)
服务器上要启动服务,则至少要将服务器发布在某一个指定的端口上。同一台 服 务器的两个服务是不能绑定在同一个端口上的。
对于客户端而言, 如果服务器所使用的端口与服务所使用的协议的默认通信端口,则客户 端在URL中可以省略端口。
在实际测试工作中,具体的端口以实际的环境为准,
常见的协议及其默认的通信端口对应关系:
http 80
https http+ssl 443
ssh 22
ftp 21
stmp 25
pop3 110
mysql 3306
oracle 1521
MS SQL 1443
path : 路径 指跟在domain:port之后的部分。
路径一般来说是用来标识当前接口所访问的资源的地址。
一般来说,我们在抓包获取接口时,都是根据域名+路径+输入值来判断接口的业务。
URL Parameters : URL地址参数
是指以问号作为连接符拼接在path之后的部分。
URL地址参数也属于path的一部分,只是因为携带数据的原因,我们将之独立出来。
URL地址参数的数据组织格式是键值对应的,即key=value,多个键值之间使用&为连接符。
示例:_wv=2147487745&tuin=15945f87
一般来说,浏览器及服务器都会对URL长度做一些限制,和协议无关