网络综合
从浏览器地址栏输入 url 到显示网页的过程
DNS解析、TCP连接、发送HTTP请求、服务器处理请求并返回响应,浏览器处理响应返回
- DNS 解析:浏览器会发起一个 DNS 请求到 DNS 服务器,将域名解析为服务器的 IP 地址。
- TCP 连接:浏览器通过解析得到的 IP 地址与服务器建立 TCP 连接。这一步涉及到 TCP 的三次握手,用于确保双方都已经准备好进行数据传输了。
- 发送 HTTP 请求:浏览器构建 HTTP 请求,包括请求行、请求头和请求体;然后将请求发送到服务器。
- 服务器处理请求:服务器接收到 HTTP 请求后,根据请求的资源路径,经过后端处理,生成 HTTP 响应消息;响应消息包括状态行、响应头和响应体。
- 浏览器接收 HTTP 响应:浏览器接收到服务器返回的 HTTP 响应数据后,开始解析响应体中的 HTML 内容;然后构建 DOM 树、解析 CSS 和 JavaScript 文件等,最终渲染页面。
- 断开连接:TCP 四次挥手,连接结束。
DNS的解析过程
DNS 的全称是 Domain Name System,也就是域名解析系统,它可以将域名映射到对应的 IP 地址上
域名到 IP 之间的映射,就需要 DNS 来完成
浏览器会首先检查自己的缓存中是否有这个域名对应的 IP 地址,如果有,直接返回;如果没有,进入下一步。
检查本地 DNS 缓存是否有该域名的记录。如果没有,向根域名服务器发送请求,根域名服务器将请求指向更具体的服务,如 com 顶级域名服务器。
顶级域名服务器再将请求指向权限域名服务器,通常由域名注册机构直接管理
最终,浏览器使用获得的 IP 地址发起一个 HTTP 请求到目标服务器,然后该服务器返回所请求的网页内容
WebSocket 与 Socket 的区别
- Socket 其实就是等于 IP 地址 + 端口 + 协议。
具体来说,Socket 是一套标准,它完成了对 TCP/IP 的高度封装,屏蔽网络细节,以方便开发者更好地进行网络编程。
- WebSocket 是一个持久化的协议,它是伴随 H5 而出的协议,用来解决 http 不支持持久化连接的问题。
- Socket 一个是网编编程的标准接口,而 WebSocket 则是应用层通信协议。