token是做什么用的?
token就是令牌,是一个字符串,主要用于做客户端身份认证,通常登录成功后,服务端会返回token,客户端需要把token值保存下来,后续请求其他接口时,需要在请求中携带这个token值,只有服务端对token校验通过后,才允许访问
fiddler的工作原理?
fiddler其实就是在客户端和服务端之间起到了一个代理的作用,可以在监听客户端和服务端的HTTP通信,把请求和响应的数据都抓下来,另外还可以做请求/响应拦截,修改报文,以及弱网测试等
用fiddler来做什么?
- 当测试出bug时,可以通过fiddler抓包,分析bug是客户端还是服务端的问题
- 当做接口测试时,通过抓包获取接口的入参和返回值,包括接口之间的数据关联
- 当对客户端做弱网测试,可以修改fiddler的网络模拟参数,模拟出不同的网络速度
- 当需要对客户端测试一下特殊场景,可以使用fiddler设置响应断点(bpu、bpafter),修改服务端响应的数据,测试客户端对应的逻辑处理,比如修改服务端返回的状态为500
TCP的三次握手、四次挥手是什么?
SYN:建立一个新连接
FIN:断开一个连接
ACK:确认号占32位,客户端和服务端都可以发送
三次握手过程描述:
- 客户端发送连接请求报文-----SYN包
- 服务器端接收连接,然后回复报文----SYN + ACK包
- 客户端收到之后,回复建立连接----ACK包
四次挥手过程描述:
客户端和服务端都可以发起关闭连接请求
- 客户端向服务器端发起---FIN包----进入终止等待1状态
- 服务端收到FIN包,发送-----ACK包-----进入关闭等待状态,客户端进入终止等待2状态
- 服务端发送------FIN包-----进入到最后确认状态
- 客户端收到后回复------ACK包-------进入超时等待状态,经过超时时间后关闭连接、客户端接收到ACK包后立即关闭连接
为什么是三次握手而不是两次握手?
防止因为已失效的请求报文,突然又传服务器引起错误
第一次的SYN包,在中间某个网络节点产生了滞留,客户端重新发送SYN包,服务器进行回复,建立连接;但是第一包数据突然恢复,又送达到服务器端,服务器端会误任务这是一个新的连接。那么对于客户端来说,这是一个连接,而服务器端会认为这是两个连接,造成了状态不一致的情况,所以在最后由客户端再进行一次回复,三次握手就是为了解决网络通信道不可靠的问题