URL的构成:
URL和URI:
URL:统一资源定位符,URI:统一资源标识符(URI是抽象的,而URL是具体化的,属于URI范畴)
一般来说,http请求都会和URL地址有关,对于URL来说一般由一下5个部分构成
·协议:通常为第一个冒号之前的内容。常见的协议有:http,https(http+ssl),ftp( 用的比较少),ssh,about,JavaScript。
·域名:要访问的服务器的域名(通常对应的是机器名或者ip地址),一般格式为://域名
示例://192.168.1.12
·端口:就是访问服务器自己所设定的服务端口,监听端口(监听客户端请求)。
一般如果服务器使用的是协议的默认通信端口,则用户在通过URL访问服务器时,是可以省略端口的。
常见协议的默认端口:http:80 https:443or8441 f tp:21 ssh:22 smtp:25 pop3:110 oracle:1521 msql:3306 sql server:1433
·路径:path,是指要访问的资源在服务器容器下的相对路径(文件存储位置),不是资源在服务器的绝对路径
注意:在restful风格的接口中,经常会直接将参数内容以path的形式进行封装
·URL地址参数:一般来说是通过?连接在path之后。
在很多工具中,也是可以呀归类到path中,一般来说,URL地址参数都是键值对应的
http协议:
http协议是由俩个部分构成:http request(请求)、http response(相应)
对于接口测试或者性能测试来说,我们需要去模拟、气实现的是http请求,但是我们又需要结合http响应来处理脚本
在这个过程中,我们能够改变的只是请求
一般来说,要了解协议,需要结合抓包工具来进行
常用抓包工具:http watch
chrome/firefox/id的F12自带的开发工具
fiddler、charles、wireshark
http request: http请求:一般来说,是由三个部分构成:request line、request header、request body
·request line:一般来说是请求的第一行内人,包含3个信息:request method、request path、protocol/version
request method(请求方法):一般来说,请求方法是由接口或者客户端决定。
常见的http请求方法有:get、psot、put、delete、header、options、trace等。
html中(不是http)一般来说:
get方法传递参数时,是通过URL地址参数来封装数据的。
post方法传递参数时,是通过request body来封装数据的。
注意:默认情况下。不指定方法的话,客户端一般都是使用get方法
·request path:请求路径。就是URL中的path部分
·protocol/version:协议和版本
·request header:请求头, 一般是指请求的数据包中的第二行开始,到第一个空行截止部分。
请求头是用来传递信息的,包括通信和控制相关的信息
请求头是键值对应的
请求头的类型是又http协议规定的,是不能自定义的,每一种信息头都是有其特殊的通信意义的
·request body:请求主体:第一个空号开始到整个请求包结束的部分
一般来说,请求主体是适用于post方法,不适用于get方法的。
请求主体传递的内容是由应用或接口决定。
默认是www-form类型(普通的键值对应,通过&连接的字符串)
如果不适默认类型,则在请求 头中,一定要添加以下信息头:
·Content type:
该头是告知服务器,所发送的body 的数据格式、数据类型
· http response:http相应,由三部分构成:request line、request header、request body
·response line:响应行,是指响应中第一行的内容。包含三个信息:
protocol/version 、respnose code 、response message
示例:http/1.1 200 OK
http/1.1 404 Not Found
·response code:响应代码,又叫状态码,是服务器用来告知客户端,服务器对于请求的处理状态
状态码一般是由三位长度的数字构成,一般来说,首字母相同的往往表示是统一大类处理状态。
·1xx:表示传递信息 ·2xx:典型的就是200,表示处理成功(指的是服务器逻辑走通了,并不代表业务成功)
·3xx:表示重定向 ·4xx:表示客户端错误。 403:表示权限有误。404:表示请求的资源未找到。
·5xx:表示服务器错误 500:是指服务器由于内部原因导致无法处理请求。注意:一般来说,接口测试、性能测试过程中,在调试脚本的阶段出现500,通常不是服务器问题,而是脚本封装问题
注意:一般来说1xx、2xx、3xx表示客服端(性能、接口测试工具)和服务器逻辑通信没有问题,4xx、5xx表示逻辑有问题,一般是由封装的数据导致的
·response message :响应信息,一般是用来描述响应代码的,没有实际意义。
·response header :类似于request header。是服务器反馈给客户端的控制、通信信息。
·response body:响应主体,也是由应用和接口产生
本文是由学习视频中学习手打而成