1. 什么是握手
我们知道,所有的 tcp 请求都需要经历三次握手,如下图:
握手是websockets中的web,他是http到ws的桥梁 为什么是三次,如果是两次会怎么样呢,我们假象一下,
客户端:客户端请求连接
服务端:服务端回复客户端我已经准备好了
这时握手终止,服务端就会想,客户端内小子他有没有准备好啊,心好慌。。。
直到客户端回复,大哥我已经准备好了,来吧,开始干大事
2. 我们为什么握手
web现存的漏洞类,如果我们使用HTTP轮询存在于Web应用程序中使用http 如:
》以明文形式传输敏感数据(WS://而不是WSS://)
》用户输入验证问题
》身份验证/授权问题
》Origin Header验证/跨站请求伪造(CSRF)
感觉纯粹的ajax都不是很好解决,而在WebSocket握手期间可以对客户端进行身份验证的任何特定方式。WebSocket
服务器可以使用通用HTTP服务器可用的任何客户端身份验证机制,例如cookie,HTTP身份验证或TLS
身份验证</