协议与数据——请求与响应
一、架构可分为
架构可分为:单体架构、分布式架构、微服务架构
服务有与服务之间需要通信和调用:同步通信模式、异步通信模式
二、协议
HTTP协议(一个完整的请求流程)、websocket、gRPC远程过程调用(调用远程的服务感觉像调用自己本地的服务一样快)
通信:tcp/ip协议
三、HTTP协议中常用的请求方法
GET:客户端从服务端获取资源
POST:客户端往服务端发送请求添加新的资源
PUT:客户端针对服务端已有的数据进行更新
DELETE:客户端删除服务端已有的数据
编程语言
get:获取信息
set:设置信息
由于PUT和DELETE请求方法不安全,所以很多时候,往往会使用POST来进行替代
四、发送Requests的组成部分
1、请求地址
2、请求方法
3、请求头
Content-Type:指的是数据格式
Cookie:反爬虫,身份凭证
Referer:发送请求的地址是从哪里来的
User-Agent:发送网络请求的时候向服务端标注请求是通过什么浏览器或者什么软件(PostMan,JMeter)发送的
如:开发了一个APP,想看哪个系统使用的用户比较多,统计user-agent的数据,进行分析
4、请求参数
请求头中的数据格式决定了请求参数的格式
get:路径参数
key1=value1&key2=value2(get的请求参数与数据格式没任何关系)
post:payload中显示了请求的参数
五、Response响应部分
1、协议状态码
200 请求成功
201 添加成功
204 删除成功
301 永久重定向
302 临时重定向
400 Bad Request 客户端请求错误(1、请求参数不对,2、请求头不对)
401 Unauthorrized 无权限访问该系统
403 Forbidden 有权限但是禁止访问
404 请求的资源不存在(请求的地址不存在,所以导致请求的资源也是不存在)
405 不被允许的请求方法(405MERHOD NOT ALLLOWED),就像你请求的方法,没有定义对应的请求方法,但是你去进行访问
程序员的错误
500 服务器内部错误
1)空指针 Null PointExpection
2)堆栈溢出 在测试选择项的时候,选择很多很多的项,同时触发,看是否会暴露该问题
3)OOM-内存泄漏(Out Of Memory)
4)其他异常 Expection
504 GateWay Timeout-网关超时
2、响应数据
响应数据返回的数据格式是由响应头里面的content-type来决定的
3、响应头——response headers
content-type:指明返回的响应数据的数据格式是什么
set-cookie:服务端返回给客户端的登录凭证
六、常用的数据格式
1、表单
application/x-www-form-urlencoded;charset=UTF-8(GBK)
2、json格式
application/json;charset=UTF-8
json数据格式:基于JSON的数据格式,但是数据类型是字符串
3、text/html
返回的是基于html的数据格式
4、text/xml
返回的是基于xml的数据格式
参考例:http://ws.webxml.com.cn/webservices/DomesticAirline.asmx?op=getDomesticCity