
正文
URL和HTTP协议(无图片)
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
URL。。。。。。
示例:
http://localhost/phpwind/searcher.php?keyword=phpwind&type=thread
协议部分:一般是指URL中第一个冒号之前的部分。
web系统中常用的协议有:http
https
ftp
smtp
javascript
about
oracle
mysql
属于必选部分。
域名:就是要访问的web服务器的地址(域名或者IP地址)
属于必选部分。
端口:是跟在域名之后,格式一般是:
域名:端口
一般来说,web服务器都会指定自身提供服务的端口(监听端口)。
然后用户要访问服务器,必须指定对应的端口。
通常来说,常用的协议都有默认的服务端口,如果服务器所提供的服务端口和协议的默认端口一致的话,则用户可以不用输入端口。
常见的协议和对应的默认端口有:
http 80
https(ssl) 443or8443
ftp 21
ssh 22
smtp 25
pop3 110
oracle 1521
mysql 3306
sqlserver 1433
属于必选部分。
路径:path,一般是端口之后的/开始的部分,包含/。
一般来说,我们访问的服务器都是服务器所指定的某一个文件夹(容器)内的资源。
path就是用来指定要访问的资源位于服务器的容器下的路径。(从容器开始计算,不包括容器本身的路径。)
示例:/phpwind/searcher.php
属于必选部分。
服务器一般都有一个index的设置,如果访问的是服务器的文件夹,则会自动访问文件夹下的index文件
URL地址参数:一般是以?拼接在path之后,通常代表使用get方法传递给服务器的数据。
URL地址参数通常是键值对应的。即键名=键值,不同的键值之间使用&符号进行拼接。
属于可选部分。
PS:在很多场合,URL地址参数会被归结为path部分。
HTTP协议。。。。。。
http协议本身是一种基于请求(request)和响应(response)的协议。
http request:http请求一般是由三个部分构成:request line、request header、request body
·request line:一般是指request包中第一行内容。通常包含以下信息:request method、request path、protocol/version
示例:GET /phpwind/ HTTP/1.1
·request method:请求方法,常用的http请求的方法有:get\post\put\delete\trace\head\options等。
目前使用最多的方法就是get和post。
默认的请求方法就是get。
一般来说,在HTML中,使用get方法提交的数据通常是以URL地址参数的方式进行拼装;使用post方法提交的数据一般是以request body的方式拼装。
在浏览器层面,对于URL地址的长度是有限定的(http是没有),因此一般大型数据都会使用post方法。
post对于数据类型的支持比get更好。
使用get方法获取的响应是会cache(缓存)。(这才是post为什么比get要安全的原因)
·request path:就是URL的path部分。
·protocol/version:协议和版本。
·request header:请求头,一般是指第二行开始到第一个空行结束的部分。主要是为了去完成通信的控制。
请求头一般都是键值对应的。格式为:请求头名称:请求头的值。
请求头的名称(类型)都是由http协议提前约定好,具有特定的通信效果的,一般不能自定义。
从性能测试角度,建议指定的信息头有:
Accept:用来告知服务器,客户端希望接受的数据类型。
User-Agent:用来告知服务器,客户端的一些环境配置信息。主要会影响到兼容性操作,session的建立等。
Accept-Encoding:告知服务器,本地是否支持解压缩,支持的压缩类型有哪些。
Content-Type:如果request body中有内容,则需要使用该信息头指定内容的数据类型(告知服务器)
·request body:请求主体。是指第一个空行之后的内容。
比如说get方法,一般来说body就是空的。
post方法才会产生body内容。
·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
PS:通常在接口测试和性能测试脚本开发的过程中,出现500错误,往往不是服务器问题,而是我们拼装的请求有问题所导致。
·response message:响应信息,是用来描述响应代码的。本身没有什么意义,可以自定义。
·response header:响应头。
格式、作用类似于请求头。
请求头是客户端提交给服务器的。
响应头是服务器返回给客户端的控制信息。
·response body:响应主体,即服务器最终返回给客户端的资源信息(字节信息)






