点此获取更多相关资料
本文为霍格沃兹测试开发学社学员学习笔记分享
原文链接:https://ceshiren.com/t/topic/27726
一、网络模型
二、常见接口协议
RPC协议
- RPC(remote procedure call)
- 以本地代码调用的方式实现远程执行
- 主要用于公司内部的服务调用
优点
- 传输效率高,性能损耗低、自带负载均衡、更好的服务治理能力
常见的RPC协议
- Dubbo:Java基础上的高性能RPC协议
- gRPC:高性能通用RPC框架,基于protocol buffers(一个语言中立,平台中立的数据序列化框架)
- Thrift:与gRPC类似的多语言RPC框架
三、HTTP 协议详解
3.1、HTTP协议
-
请求
- 请求行:method、URL、protocol
- 请求方法:get、post、put、delete、head
- 请求头:Cookie、user-agent
- 请求参数:query
- 请求体:Json、xml、form
-
响应
- 响应状态行
- 响应头
- 响应体
3.2、URI和URL
-
URI:统一资源标识符,用来唯一标识一个资源
-
URL:统一资源定位符,它是一种具体的URI
-
URL结构:
https://www.baidu.com/s?wd=霍格沃兹&rsv_spt=1
- 协议:
http
- 域名:
www.baidu.com
- 端口:跟在域名后面,域名和端口之间使用“:”作为分隔符,非必须,如果省略端口部分将采用默认端口
- 路径:
/s
- 请求参数:
wd=霍格沃兹&rsv_spt=**1
- 协议:
3.3、HTTP 请求报文
> GET /uploads/user/avatar/31438/8216a3.jpg HTTP/1.1
> Host: ceshiren.com
> Accept-Encoding: deflate, gzip
> Connection: keep-alive
> Pragma: no-cache
> Cache-Control: no-cache
> User-Agent: Mozilla/5.0
(Macintosh; Intel Mac OS X 10_15_0)
AppleWebKit/537.36
(KHTML, like Gecko)
Chrome/80.0.3987.116 Safari/537.36
> Accept: image/webp,image/apng,image/*,*/*;q=0.8
> Referer: https://ceshiren.com/
> Accept-Language: en,zh-CN;q=0.9,zh;q=0.8
> Cookie: user_id=xx;
_homeland_session=xx;
>
3.4、HTTP 响应报文
< HTTP/1.1 200 OK
< Server: nginx/1.10.2
< Date: Thu, 12 Mar 2020 09:13:44 GMT
< Content-Type: image/png
< Content-Length: 11390
< Connection: keep-alive
3.5、HTTP 响应状态码
-
1xx 临时响应,表示通知信息,请求收到了或正在进行处理
-
2xx 表示成功,接受或知道了
- 200 成功
-
3xx 表示重定向,要完成请求还必须才去进一步的行动
- 301 永久移动
- 302 临时移动
-
4xx 表示客户端请求错误
- 403 未授权
- 404 未找到
-
5xx 表示服务端错误
- 500 服务器内部错误
- 503 服务不可用
四、Restful 架构
-
Restful:Representational State Transfer
-
借助于 HTTP 协议的基本请求方法代表资源的状态切换
- GET:获取资源
- POST:新增或者更新
- PUT:更新资源
- DELETE:删除资源