十七.网络协议学习笔记 WS_HTTPDNS_FTP_邮件
ICMP Internet Control Message Protocol 互联网控制消息协议
IPv4中ICMP称为ICMPv4,IPv6中ICMP称为ICMPv6
用于返回错误消息
TTL值过期,目的不可达
HTTP请求特点
只能客户端发起,所以起初的推送都是用轮询来实现
浏览器每过一段时间,发送请求最新消息
为了节省流量和服务器资源,并且能实时通讯,html5规范中出现了websocket
WebSocket
全双工
应用场景多
HTTP vs WebSocket
1.都是应用层协议
tcp本来就是全双工
http的请求-应答模式,限制了tcp的功能
2.websocket使用80,443(ws://wss://)绕过了大多数防火墙
3.与http不同,websocket需要先建立连接 upgrade
这就使得WebSocket成为一种有状态的协议,之后通信时可以省略部分状态信息
而HTTP请求可能需要在每个请求都额外携带状态信息(如身份认证等)
建立连接
WebSocket需要借助HTTP协议来建立连接(也叫作握手,Handshake) 由客户端(浏览器)主动发出握手请求
Connection必须设置Upgrade
表示客户端希望连接升级
Upgrade必须设置websocket
表示希望升级到WebSocket协议
Sec-WebSocket-Version
表示支持的Websocket版本
RFC 6455要求使用的版本是13
建立连接
Sec-WebSocket-Key是客户端生成的随机字符串,比如例子中的
服务器接收到客户端的Sec-WebSocket-Key后,会进行以下操作
① Sec-WebSocket-Key加上一个固定的GUID值(258EAFA5-E914-47DA-95CA-C5AB0DC85B11)
② 将①的结果进行SHA-1摘要计算
b37a4f2cc0624f1690f64606cf385945b2bec4ea
③ 将②的结果进行Hex To Base64编码
s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
④ 将③的结果做为Sec-WebSocket-Accept响应头的值,返回给客户端
如此操作,可以尽量避免普通HTTP请求被误认为WebSocket协议
WebService
Web服务,是一种跨编程语言和跨操作系统平台的远程调用技术标准
核心概念
SOAP(Simple Object Access Protocol),译为:简单对象访问协议
很多时候,SOAP = HTTP + XML
WebService使用SOAP协议来封装传递数据
WSDL(Web Services Description Language),译为:Web服务描述语言
一个XML文档,用以描述WebService接口的细节(比如参数、返回值等)
一般在WebService的URL后面跟上?wsdl获取WSDL信息
✓ 比如:http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl
HTTPDNS
基于HTTP协议向DNS服务器发送域名解析请求
FTP
两个连接
邮件
发邮件
SMTP 简单邮件传输协议
基于TCP 25端口 TLS465
收邮件
POP 邮局协议
基于TCP 110端口 TLS 995
IMAP
POP下载所有邮件
IMAP拉取摘要