七层网络模型与常见协议:
tcp与udp的区别(协议层):
Restful软件架构风格:
Restful:Representational State Transfer的缩写,借助于http协议的基本请求方法代表资源的状态切换
常见的四种请求方式:
post:新增或者更新
get:获取资源
put:更新资源
delete:删除资源
RPC协议:
RPC协议:Remote Procedure Call,以本地代码调用的方式实现远程执行
Duobbo:
Java上的高性能RPC协议,Apache开源项目,由阿里捐赠
底层应用层协议支持dubbo缺省tcp协议、http协议、hessian、thrift、grpc等
gRPC:
高性能通用RPC框架,基于Protocol Buffers
PB是一个语言中立、平台中立的数据序列化框架,Google开源项目
Thrift:
与gRPC类似的多语言RPC框架,Apache开源项目
协议分析工具
网络监听:TcpDump + WireShark,适合分析偏底层协议
代理:Proxy
推荐工具:手工测试charles[全平台]、安全测试burpsuite[全平台java]
自动化测试:mitmproxy
其他代理:fiddler(仅windows)、AnyProxy[全平台]
协议客户端工具:curl、postman
举例tcpdump分析:运行需要root权限
1. sudo tcpdump -Al host 网址 -w /tmp/tcpdump.log
2. curl 网址(http网址,同一中网址一致)
3. 停止tcpdump
4. 使用wireshark打开/tmp/tcpdump.log
参数:
-x:十六进制展示
-w:file保存文件
表达式:
ip:tcp协议
host:主机名
port 80:端口号
src:来源
dst:目的
and、or、():逻辑表达式
wtreshark查看tcpdump.log文档内三次我再与四次挥手: