——————·今天是2020年第28天·——————
这是ITester软件测试小栈第93次推文
一
HTTP请求方式
1
常见请求方式
方法 |
描述 |
GET |
请求指定的页面信息,并返回实体主体 |
HEAD |
类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头 |
POST |
向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改 |
PUT |
从客户端向服务器传送的数据取代指定的文档的内容 |
DELETE |
请求服务器删除指定的页面 |
CONNECT |
HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器 |
OPTIONS |
允许客户端查看服务器的性能 |
TRACE |
回显服务器收到的请求,主要用于测试或诊断 |
PATCH |
是对 PUT 方法的补充,用来对已知资源进行局部更新 |
常见的接口类型:
get
它本质就是发送一个请求来取得服务器上的某一资源。资源通过一组HTTP头和呈现数据(如HTML文本,或者图片或者视频等)返回给客户端。GET请求中,永远不会包含呈现数据。
格式:请求数参数写在网址后面,用"?"连接,多个参数之间用"&"连接;
场景:get型接口用于获取信息,多用于查询数据,如列表查询功能,点击查询按钮就调用一个get接口,然后把信息返回出来;
特点:1)请求数据量小,2)参数暴露于url地址中,故存在安全隐患。
post
post向服务器提交数据,这个方法用途广泛,几乎目前所有的提交操作都是靠这种方式完成。它用来向指定资源提交数据进行处理请求(例如:提交表单和上传文件),数据包被包含在请求体中,post请求可能导致新的资源的建立或者已有的资源的修改。
说明:向指定资源位置提交数据(如提交表单、上传文件)来进行请求,post请求可能会导致新资源的建立。
场景:如注册、上传、发帖等功能,如用户在豆瓣网站对某本书进行收藏、写笔记、发表评论。
特点:请求数据量大,安全性高。
如,豆瓣的发表评论的开放api
POST
https://api. douban. com/v2/book/reviews
put
put比较少见,HTML表单也不支持此方式。本质上来讲, put和post极为相似,都是向服务器发送数据,但它们之间有一个重要区别,put通常指定了资源的存放位置,而post则没有,post的数据存放位置由服务器自己决定,客户端向服务器传送的数据取代指定文档的内容。
说明:put请求用于向指定资源位置上传最新内容。
场景:如用户在豆瓣网站修改对某本书的收藏、修改某篇笔记或修改评论。
如豆瓣的修改评论的开放api。
PUT https:// api. douban. com/v2/book/review/ :id
delete
delete删除某一个资源,基本上这个也很少见,比如amazon的S3云服务里面就用的这个方法来删除资源。
说明:请求服务器删除请求里url所标识的资源;
场景:如用户在豆瓣网站取消对某本书的收藏、删除某篇笔记或删除评论;
如豆瓣的删除评论的开放api。
DELETE
https://api. douban. com/ v2/book/review/ :id
不常见的接口类型:
head
head和get本质是一样的,区别在于head不含有呈现数据,而仅仅是HTTP头信息。换句话说,就是返回响应中没有具体内容,只获取报头。一个业务情景:欲判断某个资源是否存在,我们通常使用get,但这里用head则意义更加明确。
connect
HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
options
options是获取当前URL所支持的方法,若请求成功,则它会在HTTP头中包含一个名为“Allow”的头,值是所支持的方法,如“GET, POST”。允许客户端查看服务器的性能。
trace
trace回显服务器收到的请求,主要用于测试和诊断。
2
get请求与post请求的区别
1.提交数据的形式
GET方法一般是指获取服务器上的数据,请求参数(query string查询字符串)直接跟着URL后边,以?分割URL和传输数据,参数之间以&相连(?key1=value1&key2=value2)的形式,直接可以放到浏览器地址栏里,例如登录就是采用GET方法。
如:login.actionname=hyddd&password=idontknow&verify=%E4%BD%A0%E5 %A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4 %BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。
POST方法是指客户端给服务器上提交表单数据,会把数据放到请求数据字段中以&分隔各个字段,请求行不包含数据参数,地址栏也不会额外附带参数,所以POST是通过表单提交的,请求参数放在body中,如网页上的新用户的注册、调查问卷和答题就是采用POST方法。
2.提交数据的大小/长度
get是直接在浏览器地址栏输入,直接影响到了URL的长度,但HTTP协议规范中其实是没有对URL限制长度的,限制URL长度的是客户端或服务器的支持的不同所影响:比如IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有