软件测试-post和get

414 阅读3分钟

写在前面:

测试更多使用的是post,所以主要看看post和get的区别

一、http定义

参考上一篇应用层协议的笔记

二、请求方法

1、GET

类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头。

1、它是 HTTP 常见的请求类型,最常见于向服务器查询某些信息。

2、可以将查询参数追加到 URL末尾,以便将信息发送给服务器。

3、对查询字符串的格式有要求,每个参数名称和值必须使用encodeURIComponent进行编码,才能放到URL末尾,必须用&符号隔开。例如:index.html?__csr=1&&id=001

4GET请求产生一个数据包。对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据)

2、POST

向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立或已有资源的修改。

1、它是 HTTP 常见的请求类型,最常见于向服务器发送应该被保存的信息或者查询某些信息。

2、可以添加请求参数,将请求参数添加到body中。

3、POST请求产生2个数据包,在火狐浏览器中,产生一个数据包。

3、HEAD

请求指定的页面信息,并返回实体主体。

4、PUT

从客户端向服务器传送的数据取代指定的文档的内容。

5、DELETE

请求服务器删除指定的页面。

6、CONNECT

HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。

7、OPTIONS

允许客户端查看服务器的性能。

8、TRACE

回显服务器收到的请求,主要用于测试或诊断

9、PATCH

是对 PUT 方法的补充,用来对已知资源进行局部更新。

三、post和get区别

1、GET 请求的请求参数是添加到 head 中,可以在 url 中可以看到;POST 请求的请求参数是添加到BODY中,在url 中不可见。

2、GET 请求参数需要使用 encodeURIComponent 进行编码,必须用 & 符号隔开。

3、请求的url有长度限制,这个限制由浏览器和 web 服务器决定和设置的。。因为GET请求的参数是添加到URL中,所以GET请求的URL的长度限制需要将请求参数长度也考虑进去。而POST请求不用考虑请求参数的长度。

4、为GET没有请求体,所以就发送一个数据包;而POST包含请求体,所以发送两次数据包,但是由于火狐浏览器机制不同,所以发送一个数据包。

5、由于GET请求的参数是在url中,所以可以直接在浏览器中打开

6、GET 请求会被浏览器主动缓存下来,留下历史记录,而 POST 默认不会。

7、GET是幂等的,而POST不是。(幂等表示执行相同的操作,结果也是相同的)