一、抓包协议简单分析
1.简单说下http协议有哪几种请求方式:
在http1.0版本上有三种方式:get、post、head
在http1.1版本上新增了五种:put、options、delete、trace、connect
基本上用的就是get和post了,下面就对get和post具体解释一下,讲这个之前需要讲下URL的结构,拿博客园网址举例
https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=%E5%8D%9A%E5%AE%A2%E5%9B%AD&rsv_pq=9070b02d0000b82c&rsv_t=ecbfNLT6tI2IKIjGeY1Y7bImwtpREHE5RfVv1D5egK%2FvDovb5soyDvWDOyU&rqlang=cn&rsv_enter=1&rsv_sug3=8&rsv_sug1=7&rsv_sug7=100
host:www.baidu.com 这是域名
path:s 这是服务器路径
?分隔符
问号后面跟的是参数,格式是name=value&name=value ,多个参数用&连接
分析完URL结构,下面讲:
1.get请求特点:一般输入网址这种的都是get请求,参数直接写在了URL地址里面, 有请求行,请求头,空行,注意post是没有最后body这部分。
2. post请求特点:一般登录,提交表单,这种是post请求,参数写在body里面,这样比较安全,有请求头,请求行,空行,body(可以有body,也可以没有body)
然后就是请求参数的讲解:
1.get请求的参数是写在URL里面,类型是application/x-www-form-urlencode,即name1=value1&name2=value2
2.post的body常见数据有四种类型:
(1)application/json,如{'name1':'value1','name2':'value2'}
(2)application/x-www-form-urlencode,即name1=value1&name2=value2
(3)multipart/form-data,这是一种表单格式的,如图片,表格
(4)text/xml <!--?xml version="1.0"?--> <methodcall> <methodname>examples.getStateName</methodname>
我们测试中最常用就是前俩种
2.既然有请求那肯定有响应response
HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文
这里只对状态行简单说下,常见的有以下几种:
200 ok:客户端请求成功
400 bad request:客户端请求有语法错误,不能被服务器所理解
401 Unauthorized :请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 forbidden:服务器收到请求,但拒绝提供服务
404 not found:请求资源不存在
500和503都是服务器那边出现的问题,这时候就要找运维那边解决了