TCP/IP四层模型 |
单位 |
协议 |
功能 |
应用层 |
HTTP、FTP、DNS、SMTP |
应用层协议为不同应用提供服务 |
|
传输层 |
报文段 |
TCP、UDP |
为上层实体提供端到端主机的通信功能 |
网络层 |
数据报 |
IP、ARP、RARP |
提供主机到主机的通信服务,处理网络上流动的数据报(网络传输的最小数据单位) |
网络接口层 |
帧 |
PPP |
实际数据的传输 |
OSI七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
DNS:域名系统,进行域名与IP地址转换的服务器,域名解析过程如下:
首先搜索浏览器的 DNS 缓存
若未命中,则继续搜索操作系统的 DNS 缓存
若仍未命中,则操作系统将域名发送至本地域名服务器,本地域名服务器采用递归查询自己的 DNS 缓存,查找成功则返回结果
若本地域名服务器的 DNS 缓存没有命中,则本地域名服务器向上级域名服务器进行迭代查询
首先本地域名服务器向根域名服务器发起请求,根域名服务器返回顶级域名服务器的地址给本地服务器
本地域名服务器拿到这个顶级域名服务器的地址后,就向其发起请求,获取权限域名服务器的地址
本地域名服务器根据权限域名服务器的地址向其发起请求,最终得到该域名对应的 IP 地址
本地域名服务器将得到的 IP 地址返回给操作系统,同时自己将 IP 地址缓存起来
操作系统将 IP 地址返回给浏览器,同时自己也将 IP 地址进行缓存
至此,浏览器就得到了域名对应的 IP 地址,并将 IP 地址进行缓存
(总结:浏览器缓存<=>操作系统缓存<=>本地域名服务器<=>根域名服务器<=>顶级域名服务器<=>权限域名服务器)
HTTP协议 |
特点 |
HTTP1.0 |
浏览器与服务器只保持短暂连接,每次请求都需要新建一个TCP连接,请求处理完成后断开TCP连接 |
HTTP1.1 |
默认支持长连接(Connection:keep-alive),即一次连接可以进行多次请求与响应;长连接使得多数请求以管线化的方式发送成为可能,即发送请求后,不用等待响应即可发送下一次请求;引入更多缓存控制策略;添加了其他请求方法(put delete options) |
HTTP2.0 |
性能提升:多路复用(浏览器与服务器都可同时发送多个请求或响应);二进制分帧(二进制格式传输数据,1.x采用文本格式传输数据);首部压缩;服务器推送 |
WebSocket协议 |
特点 |
WebSocket |
Websocket是基于HTTP的协议,在建立http连接后,请求首部Connection:upgrade、Upgrade:WebSocket,表明通信使用的是websocket协议,服务器返回101状态码,表示协议转换。它是一个全双工通信标准,它的优点是:(1)服务器推送;(2)减少通信量(首部缩小) |
HTTP2.0与WebSocket |
HTTP2.0与WebSocket的服务器推送的不同 |
HTTP2.0下,需要在客户端发起请求后,服务器才能在响应时向客户端发起推送,而WebSocket下,服务器可以主动向客户端发起推送 |
HTTP与HTTPS |
名称 |
通信加密 |
特点 |
默认端口 |
HTTP |
超文本传输协议 |
无,明文传输 |
效率高但不安全 |
80 |
HTTPS |
安全的超文本传输协议(HTTP+SSL(TSL)) |
混合加密(对称加密+非对称加密) |
安全但效率低 |
443 |
混合加密::服务器给客户端一个公钥,客户端用公钥对随机生成的密钥A进行加密,送达服务器后,服务器用私钥进行解密,获得客户端生成的密钥A,之后客户端与服务器间的通信都使用这个密钥A来进行加密解密
TCP |
UDP |
|
连接 |
面向连接(三握四挥) |
无连接 |
可靠性 |
可靠 |
不可靠 |
传输 |
字节流 |
报文 |
传输效率 |
慢 |
快 |