[TOC]
1. 协议部分:
一般是指URL中第一个冒号之前的部分
web系统中常用的协议有:
- http
- https
- ftp
- smtp
- javascript
- about
- oracle
- mysql
2. 域名:
就是要访问的web服务器的地址(域名或者IP),属于必选部分
3. 端口:
是跟在域名之后,格式一般是:
- 域名:端口
- 一般来说,web服务器都会制定自身提供服务的端口(监听端口)
- 然后用户要访问的服务器,必须是指定对应的端口
- 通常来说,常用的协议都有默认的服务端口,如果服务器所提供的服务器端口和协议的默认端口一致的话,则用户可以不用输入端口
- 常用的协议和端口有:
协议 | 端口 |
---|---|
http | 80 |
https(ssl) | 443 or 8443 |
ftp | 21 |
ssh | 22 |
smtp | 25 |
pop3 | 110 |
oracle | 1521 |
mysql | 3306 |
sqlserver | 1433 |
- 路径: path 一般是端口之后的 / 开始部分 包含 /
- 一般来说,我们访问的服务器都是服务器所指定的某一个文件夹(容器)内的资源
- path就是用来指定访问的资源位于服务器的容器下的路径.(从容器开始计算,不包括容器本身的路径)
- 示例: /phpwind/sercher.php
- 服务器一般都是有一个index的设置,如果访问的服务器的文件夹,则会自动访问文件夹下的index文件
- url地址参数: 一般是以 ? 拼接在path之后,通常代表使用get方法传递给服务器的数据.
- url 地址参数通常是 键 值 对应的.即键名=键值,不通的键值之间使用&符号进行拼接
- 属于可选的部分
- ps:在很多场合,url地址参数会被归结为path部分
4. 使用的是HTTP协议
和团体票协议本身是一种基于请求(request)和响应(response)的协议
4.1 http request:
http请求一般是由三个部分构成:
- request line
- request header
- request body
4.2 http 详细:
一般是指request包中第一行内容.通常包含以下信息:
-
request method: 请求方法常用 get post put delete trace head options等,get post 最常用
- 示例: GET /phpwind/HTTP/ 1.1
- 默认请求是 GET
- 在GET方法提交的数据通常是一URL地址参数的方式进行拼装
- 在POST方法提交的数据是以 request body的方式进行拼装
- 在浏览器层面,对于URL地址的长度是有限制的(http没有),因为大型数据是使用post方法传递
- GET方法会在浏览器进行缓存,POST是没有在浏览器缓存(这才是为什么POST比GET更安全的原因)
- POST对于数据类型的支持比较GET更好.
- 示例: GET /phpwind/HTTP/ 1.1
request path
protocol/version
-
request header: 请求头,一般是指第二行开始到第一个空行结束的部分.主要是为了完成通信的控制
- 请求头 一般都是键值对应的,格式为: 请求头名称: 请求头的值
- 请求头的名称(类型)都是有http协议提前约定好的,具有特定的通信效果的,一般不能自定义
- 从性能测试角度,建议指定的信息头有:
- Accept: 用来告知服务器,客户端希望接收的数据类型
- User-Agent: 用来告知服务器,客户端的一些环境配置信息.主要会影响到兼容性操作,session的建立等.
- Accept-Encoding: 告知服务器,本地是否支持解压缩,支持的解压缩类型有哪些.
- Content-Type: 如果request body中有内容,则需要使用该信息头指定内容的数据类型(告知服务器)
-
request body: 请求主题.是指第一个空行之后的内容
- 比如说 get方法, request body是空的
- post方法 会产生键值对的内容
-
http response: http响应, 通常也是由三个部分构成: response line, response header, response body
- response line: 响应行,通常就是响应数据包中第一行,通常包含以下信息:protocol/version,response code,response message
- 示例: HTTP/1.1 200 OK
- response code: 响应代码,又叫状态码,通常是用来标识服务器对于请求的处理状态(逻辑状态),和业务状态无关
- 一般来说,状态码通常都是三位长度的十进制数字,一般都是通过首字母实现大的类型的区分
- 1xx: 通常用来传递信息
- 2xx: 典型的就是200,一般表示服务器对于请求进行了处理.表示正确
ps:在性能测试过程中,一定要注意的就是逻辑状态是进本要求,同事要进行业务的校验 - 3xx: 一般来说就是从定向
- 一般就是301~303 307表示和url地址有关的重定向
- 304~306表示和缓存有关的重定向
- 4xx: 一般表示处理错误,
- 403: 权限
- 404: 要访问的资源不存在
- 5xx: 一般表示服务器错误
- 500: 服务器问题,或者是我们请求有错误
response message: 响应信息,是用来描述响应代码的.本身没有什么意义,可以自定义,最好自己拦截 4xx 5xx,自定义返回的错误
-
response header: 响应头
- 格式 类似于 request header
- 请求头是客户端提交给服务器的
- 响应头是服务器返回给客户端的控制信息
response body: 响应主题,即服务器最终返回给客户端的资源信息(字节信息)