Mackit 新品

Mackit — macOS 開發者快取清理工具:掃描 Xcode / Node / Flutter 等可再生快取,逐項標示風險,把磁碟空間拿回來

了解詳情
溫馨提示 2024年 6月我們已經停止開發者板塊文章內容更新,謝謝來訪。 存檔數據
知识

DNS是如何完成解析的?从请求到打开网站,HTTP发生哪些操作?今天带大家了解

DNS(Domain Name System)是一个用于将域名转换为IP地址的重要系统。它允许用户通过简单易记的域名来访问网络上的资源,而无需记住复杂的IP地址。下面将详细介绍DNS完成解析的流程:

  1. 用户在浏览器地址栏输入要访问的网址,例如:www.example.com。
  2. 操作系统的网络栈会向本地域名服务器发送一个查询请求,询问[http://www.example.com]对应的IP地址。
  3. 本地域名服务器会查询其缓存,看是否之前已经解析过这个域名。如果缓存中有这个域名的解析结果,就直接返回IP地址。
  4. 如果本地域名服务器缓存中没有这个域名的解析结果,就会向根域名服务器发送查询请求。
  5. 根域名服务器会返回一个TLD(Top Level Domain)服务器的IP地址,例如.com域名的TLD服务器的IP地址。
  6. 本地域名服务器向TLD服务器发送查询请求。
  7. TLD服务器会返回负责管理[http://www.example.com]这个域名的权威域服务器的IP地址。
  8. 本地域名服务器向权威域服务器发送查询请求。
  9. 权威域服务器查询其数据库,然后返回[http://www.example.com]对应的IP地址。
  10. 本地域名服务器将IP地址缓存起来,并把它返回给操作系统的网络栈。
  11. 操作系统的网络栈将IP地址发送给浏览器,浏览器向该IP地址发送HTTP请求。
  12. HTTP请求被服务器接收并处理,然后返回相应的HTTP响应。
  13. 浏览器接收到HTTP响应并呈现网页内容。

通过以上步骤,DNS完成了将域名解析为IP地址的过程,最终使用户能够通过浏览器访问相应的网站。需要关注的是,这个过程是在用户人不知,鬼不觉中自动完成的,用户只需输入网址即可访问网页,无需关心背后的解析过程。

在实际应用中,大多数域名解析都是在本地域名服务器完成。通过合理设置本地域名服务器,由本地域名服务器负责大部分的域名解析请求,提高域名解析效率。除此之外,还可以借助将常用域名添加到本地DNS缓存中来加速DNS解析速度,减少DNS查询请求的发送。

img-1694677849785-4441

从请求到打开网站,HTTP发生哪些操作?

HTTP(HyperText Transfer Protocol)是一种应用层协议,用于在网络中传输超文本(例如网页)。从请求到打开网站,HTTP发生了以下操作:

  1. DNS查询:当用户输入要访问的网址时,操作系统会向本地DNS服务器发出DNS查询请求。DNS服务器将域名解析为IP地址,以便计算机可以找到要访问的服务器。
  2. TCP连接:操作系统使用TCP(Transmission Control Protocol)建立与Web服务器的连接。TCP是一种可靠的传输协议,它确保数据在传输过程中不会丢失或损坏。
  3. HTTP请求:浏览器向Web服务器发送HTTP请求。请求包括请求类型(例如GET或POST)、请求的URL和请求头。
  4. 服务器处理请求:Web服务器接收到请求后,会对其进行处理。如果请求是GET类型,服务器将返回请求的资源。如果请求是POST类型,服务器将处理提交的数据。
  5. HTTP响应:Web服务器将响应发送回浏览器,包括响应头、响应状态和响应体。响应体包含请求的资源或提交数据的处理结果。
  6. 浏览器渲染页面:浏览器接收到响应后,会将响应体中的HTML、CSS和JavaScript等资源整合在一起,并渲染成网页。用户可以在浏览器中看到网页内容。
  7. 关闭连接:当浏览器和Web服务器完成数据传输后,它们会关闭TCP连接。

以上是HTTP从请求到打开网站的基本操作过程。在实际应用中,还有很多细节和特殊情况需要处理,例如缓存、重定向、Cookie等。