OSI 七层网络模型
- 物理层
- 数据链路层
无线LAN、以太网 - 网络层
IP、IPV4、IPV6… - 传输层
TCP、UDP、SCTP - 会话层
- 表示层
- 应用层
DNS、HTTP
TCP/IP 四层模型
- 物理层
- 数据链路层
- 网络层
- 传输层
一个网络请求的过程
- 解析域名。
- 发起 TCP 的 3 次握手。
- 建立 TCP 请求后发起 HTTP 请求。
- 服务器相应 HTTP 请求。
- 浏览器得到 HTML 代码,进行解析和处理 JSON 数据,并请求 HTML 代码中的静态资源(JS、CSS、图片等)。
- 浏览器对页面进行渲染
HTTP
超文本传输协议,是一种无状态的,以请求/应答方式运行的协议。基于TCP/IP协议传输数据。端口 80
HTTP get 和 post 请求的区别是什么?
get : url 有限制,参数放在 url 上
post : 表单提交,参数放在 body ,请求长度无限制
HTTPS
经由HTTP进行通信,通过SSL或者TLS进行加密处理数据、验证身份、数据完整性保护。端口 443
TCP/IP
TCP/IP 是一个协议集合
TCP 的三次握手
-
- 客户端发送请求到服务端。此时服务端知道自己接收正常、客户端发送正常;
-
- 服务器发给客户端。此时客户端知道自己接受、发送都正常、服务端接收、发送正常
-
- 客户端发给服务端。此时服务端知道自己发送、接收正常、客户端发送接收正常
TCP 的四次挥手
-
- 客户端请求断开
-
- 服务端发送回执
-
- 服务端发送请求给客户端
-
- 客户端服务端都断开
UDP
用户数据报系协议,发送数据前不需要建立连接,减少了开销和发送数据的时延。UDP 不保证可靠交付,
应用场景:即时通信、在线视频、网络语音电话
UDP、TCP 区别
- TCP 是有连接的,传输数据前需要进行三次握手,会话结束后需要结束连接,UDP 是无连接的
- TCP 保证数据按序发送,提供可靠性,UDP 不保证可靠性,甚至不保证到达
- TCP 是一对一连接,UDP 支持多对多,一对一
- TCP 是面向字节流的服务,UDP面向报文的服务