浏览器输入一个域名的解析过程

目录

从输入一个域名的解析过程

以www.baidu.com为例子

本地缓存和hosts文件

mDNS和LLMNR

NBT-NS

路由器广播

Root域名服务器

顶级域名服务器

目标域名服务器

DNS解析完成

操作系统发起TCP连接:

TCP三次握手: TCP连接的建立采用经典的三次握手过程:

TCP连接建立

HTTP请求

服务器处理请求:

HTTP响应:

浏览器渲染:


从输入一个域名的解析过程

  • 本地缓存和hosts文件: 首先,系统会检查本地的DNS缓存以及hosts文件,看是否有目标域名的解析记录。如果有,解析过程就直接结束,直接使用缓存或hosts文件中的IP地址。
  • mDNS和LLMNR: 如果本地缓存和hosts文件中没有找到,系统可能会使用mDNS(对于MacOS和Linux)或LLMNR(对于Windows)在局域网中进行主机名解析。这是一种在本地网络中进行零配置的服务发现协议。
  • NBT-NS: 如果mDNS和LLMNR都没有找到,系统可能会尝试使用NBT-NS(NetBIOS Name Service),这是一种用于在Windows网络中解析NetBIOS主机名的服务。
  • 路由器广播: 如果上述步骤都没有成功,系统可能会向本地网络的路由器发起广播请求,看是否能够得到目标主机的IP地址。
  • Root域名服务器: 如果局域网中的解析仍然失败,系统将发起DNS查询请求,首先向根域名服务器发起查询。根域名服务器将返回顶级域(例如.com)的权威DNS服务器地址。
  • 顶级域名服务器: 然后,系统将向顶级域名服务器发起查询,获取下一级域名服务器的地址。这个过程将一级一级地进行,直到获取到目标域名的权威DNS服务器。
  • 目标域名服务器: 最终,系统将向目标域名的权威DNS服务器发起查询,获取目标域名的IP地址。
  • DNS解析完成: 在上述DNS查询中,已经获取了目标域名(例如, www.baidu.com)对应的IP地址。
  • 操作系统发起TCP连接: 浏览器或其他网络应用通常会通过操作系统提供的套接字接口来发起TCP连接。操作系统根据DNS解析得到的IP地址,向目标服务器发起TCP连接请求。
  • TCP三次握手: TCP连接的建立采用经典的三次握手过程:
  • 第一步(客户端向服务器发送SYN): 客户端发送一个TCP报文,其中包含SYN(同步)标志,表示请求建立连接。
  • 第二步(服务器收到SYN并发送ACK和SYN): 服务器接收到客户端的SYN后,发送一个带有ACK(确认)和SYN标志的报文,表示同意建立连接。
  • 第三步(客户端收到ACK和SYN): 客户端接收到服务器的ACK和SYN后,发送一个带有ACK标志的报文,表示连接建立成功。
  • TCP连接建立: 当三次握手完成后,TCP连接建立成功,双方可以开始进行数据传输。
  • HTTP请求: 一旦TCP连接建立成功,浏览器向服务器发送HTTP请求,包括请求的资源路径等信息。
  • 服务器处理请求: 服务器接收到请求后,根据请求的资源路径等信息,处理并生成相应的HTTP响应。
  • HTTP响应: 服务器将响应内容通过TCP连接发送给浏览器。
  • 浏览器渲染: 浏览器接收到HTTP响应后,解析并渲染页面,呈现给用

以www.baidu.com为例子

本地缓存和hosts文件

检查本地DNS缓存和hosts文件,如果其中有"baidu.com"的解析记录,则直接使用相应的IP地址

图1 本地dns缓存
图二本地hosts文件

mDNS和LLMNR

如果本地缓存和hosts文件中没有找到,系统可能使用mDNS(MacOS和Linux)或LLMNR(Windows)在局域网中进行主机名解析。

NBT-NS

如果mDNS和LLMNR都没有找到,系统可能尝试使用NBT-NS(NetBIOS Name Service),在Windows网络中解析NetBIOS主机名。

路由器广播

如果上述步骤都没有成功,系统可能向本地网络的路由器发起广播请求,寻找" baidu.com"的IP地址。

Root域名服务器

如果局域网中的解析仍然失败,系统将发起DNS查询请求,向根域名服务器发起查询,获取.com顶级域的权威DNS服务器地址。

顶级域名服务器

系统将向.com顶级域名服务器发起查询,获取" baidu.com"的权威DNS服务器地址。
对" baidu.com ."的顶级DNS服务器的信息进行了查询。这里列出了"Baidu"公司的权威DNS服务器( ns1.baidu.com .、 ns2.baidu.com .等)。

目标域名服务器

系统将向" baidu.com"的权威DNS服务器发起查询,获取" baidu.com"的IP地址。
并且是一个别名的记录

DNS解析完成

在上述DNS查询中,已经获取了目标域名(例如,www.baidu.com)对应的IP地址。

操作系统发起TCP连接:

浏览器或其他网络应用通常会通过操作系统提供的套接字接口来发起TCP连接。操作系统根据DNS解析得到的IP地址,向目标服务器发起TCP连接请求。

TCP三次握手: TCP连接的建立采用经典的三次握手过程:

  • 第一步(客户端向服务器发送SYN): 客户端发送一个TCP报文,其中包含SYN(同步)标志,表示请求建立连接。
  • 第二步(服务器收到SYN并发送ACK和SYN): 服务器接收到客户端的SYN后,发送一个带有ACK(确认)和SYN标志的报文,表示同意建立连接。
  • 第三步(客户端收到ACK和SYN): 客户端接收到服务器的ACK和SYN后,发送一个带有ACK标志的报文,表示连接建立成功。

TCP连接建立

当三次握手完成后,TCP连接建立成功,双方可以开始进行数据传输。

HTTP请求

一旦TCP连接建立成功,浏览器向服务器发送HTTP请求,包括请求的资源路径等信息。

服务器处理请求:

服务器接收到请求后,根据请求的资源路径等信息,处理并生成相应的HTTP响应。

HTTP响应:

服务器将响应内容通过TCP连接发送给浏览器。

浏览器渲染:

浏览器接收到HTTP响应后,解析并渲染页面,呈现给用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/235934.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C2855 命令行选项“/Zc:referenceBinding“与预编译头不一致和C2855 命令行选项“/Zc:__cplusplus“与预编译头不一致

在VS2019和Qt5.12.12环境下,笔记本上编译这个工程没有问题,把工程拷贝到台式机上,一样的配置,但是报如下错误: 打开项目的命令行配置如下: 解决办法:在编译选项"/Zc:referenceBinding"…

ptaR7-5打探基priority_queue的使用

题目 最近乐乐开发出了一款新的游戏《打探基》,这款游戏需要多人配合来玩,至少三个游戏玩家同时出招才能使探基的血量下降一点,同时,出招的每个人战斗力下降一点,当战斗力小于10的时候将不能再出招,不知道…

electron+vue网页直接播放RTSP视频流?

目前大部分摄像头都支持RTSP协议,但是在浏览器限制,最新版的浏览器都不能直接播放RTSP协议,Electron 桌面应用是基于 Chromium 内核的,所以也不能直接播放RTSP,但是我们又有这个需求怎么办呢? 市场上的方案…

一小时掌握:使用ScrapySharp和C#打造新闻下载器

引言 爬虫技术是指通过编程的方式,自动从互联网上获取和处理数据的技术。爬虫技术有很多应用场景,比如搜索引擎、数据分析、舆情监测、电商比价等。爬虫技术也是一门有趣的技术,可以让你发现网络上的各种有价值的信息。 本文将介绍如何使用…

Unity组件开发--长连接webSocket

1.下载安装UnityWebSocket 插件 https://gitee.com/cambright/UnityWebSocket/ 引入unity项目: 2.定义消息体结构:ExternalMessage和包结构Package: using ProtoBuf; using System; using System.Collections; using System.Collections.Ge…

【java八股文】之Java基础篇

1、Java有哪几种数据类型 基本数据类型:byte(1字节) short(2字节) int(4字节) long(8字节) float(4字节) double(8字节) char(2字节&a…

【动态规划】 【字典树】C++算法:472 连接词

作者推荐 【动态规划】458:可怜的小猪 涉及知识点 动态规划 字典树 LeetCode472 连接词 给你一个 不含重复 单词的字符串数组 words ,请你找出并返回 words 中的所有 连接词 。 连接词 定义为:一个完全由给定数组中的至少两个较短单词(不…

DUET: Cross-Modal Semantic Grounding for Contrastive Zero-Shot Learning论文阅读

文章目录 摘要1.问题的提出引出当前研究的不足与问题属性不平衡问题属性共现问题 解决方案 2.数据集和模型构建数据集传统的零样本学习范式v.s. DUET学习范式DUET 模型总览属性级别对比学习正负样本解释: 3.结果分析VIT-based vision transformer encoder.消融研究消…

RTL编码(1)——概述

一、RTL级描述 RTL(Register Transfer Level)级:寄存器+组合逻辑,其功能与时序用Verilog HDL(以下简称Verilog)或VHDL代码描述。 RTL描述包含了同步数字电路最重要的三个特征:组合逻…

【Python】编程练习的解密与实战(三)

​🌈个人主页:Sarapines Programmer🔥 系列专栏:《Python | 编程解码》⏰诗赋清音:云生高巅梦远游, 星光点缀碧海愁。 山川深邃情难晤, 剑气凌云志自修。 目录 🪐1. 初识Python &a…

[BJDCTF2020]ZJCTF,不过如此

题目源码&#xff1a; <?phperror_reporting(0); $text $_GET["text"]; $file $_GET["file"]; if(isset($text)&&(file_get_contents($text,r)"I have a dream")){echo "<br><h1>".file_get_contents($tex…

vscode 创建文件自动添加注释信息

随机记录 目录 1. 背景介绍 2. "Docstring Generator"扩展 2.1 安装 2.2 设置注释信息 3. 自动配置py 文件头注释 1. 背景介绍 在VS Code中&#xff0c;您可以使用扩展来为新创建的Python文件自动添加头部注释信息。有几个常用的扩展可以实现此功能&#xff0…

im6ull学习总结(三-五)freetype显示正行字

知识补充 笛卡尔坐标系 这里笛卡尔坐标系就是初高中学的直角坐标系的第一象限 lcd坐标系则不同 这两个坐标系如何转换 观察两个坐标系 点&#xff08;x,y&#xff09;的x坐标在两个坐标系中相同&#xff0c;纵坐标&#xff08;y&#xff09;存在着yV-yV V是整个屏幕的行数的像…

Mysql是怎么运行的(上)

文章目录 Mysql是怎么运行的Mysql处理一条语句的流程连接管理解析与优化存储引擎 基本配置配置文件系统变量状态变量字符集四种重要的字符集MySQL中的utf8和utf8mb4各级别的字符集和比较规则MySQL中字符集的转换排序规则产生的不同的排序结果 InnoDB存储引擎介绍COMPACT行格式介…

PostgreSQL内存浅析

体系结构 &#xff08;https://www.postgresql.fastware.com/blog/lets-get-back-to-basics-postgresql-memory-components&#xff09; &#xff08;http://geekdaxue.co/read/fcantsql/qts5is) 共享内存 linux的共享内存实现 (https://momjian.us/main/writings/pgsql/insi…

解锁前端新潜能:如何使用 Rust 锈化前端工具链

前言 近年来&#xff0c;Rust的受欢迎程度不断上升。首先&#xff0c;在操作系统领域&#xff0c;Rust 已成为 Linux 内核官方认可的开发语言之一&#xff0c;Windows 也宣布将使用 Rust 来重写内核&#xff0c;并重写部分驱动程序。此外&#xff0c;国内手机厂商 Vivo 也宣布…

如何利用ChatGPT快速生成月报?

随着每个月的结束&#xff0c;个人和团队经常需要编写月报来回顾和总结。这项任务通常消耗大量时间和精力。幸运的是&#xff0c;借助ChatGPT&#xff0c;这个过程可以变得更加简单和高效。接下来&#xff0c;我将详细介绍如何利用ChatGPT快速生成月报&#xff0c;从而帮助你节…

回归预测 | Matlab基于CPO-BP基于冠豪猪算法优化BP神经网络的数据多输入单输出回归预测

回归预测 | Matlab基于CPO-BP基于冠豪猪算法优化BP神经网络的数据多输入单输出回归预测 目录 回归预测 | Matlab基于CPO-BP基于冠豪猪算法优化BP神经网络的数据多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.CPO-BP回归基于冠豪猪优化算法[24年新…

Redis(四)事务

文章目录 事务Redis事务 vs 数据库事务常用命令总结 事务 一个队列中、一次性、顺序性、排他性执行一系列命令 官网https://redis.io/docs/interact/transactions/ Redis事务 vs 数据库事务 概述详述1、单独的隔离操作Redis的事务仅仅是保证事务里的操作会被连续独占的执行&a…

【AI视野·今日Sound 声学论文速览 第四十三期】Mon, 8 Jan 2024

AI视野今日CS.Sound 声学论文速览 Mon, 8 Jan 2024 Totally 6 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers MusicAOG: an Energy-Based Model for Learning and Sampling a Hierarchical Representation of Symbolic Music Authors Yikai Qian, Tia…