使用DNS查询Web服务器IP地址

浏览器并不具备访问网络的功能,其最终是通过操作系统 实现的,委托操作系统访问服务器时提供的并不是浏览器里面输入的域名而是ip地址,因此第一步需要将域名转换为对应的ip地址

域名:www.baidu.com

ip地址是一串数字

tcp/ip的网络结构:

计算机通过集线器连接在一起构成一个个子网,子网间再通过路由器连接起来(有些路由器中已经集成了集线器)

每个计算机都会被分配一个ip地址,定位规则:

先通过ip地址中的主机号查找到服务器所在的子网接着在利用网络号在定位到的子网中找到服务器

定位到服务器的ip地址就可以向服务器发送数据了


发送网络请求的大致流程:

先到达子网中的路由器,路由器根据服务器的ip查找到下一个路由器的地址(处于同一个子网中),在到达路由器所属子网的路由器中,接着重复一级一级往上转发最终到达服务器

ip地址中的 主机号&网络号

ip地址是包含了网络号和主机号的32个比特的数字

切割ip地址

如何区分哪部分是网络号,哪部分是主机号,是通过附加信息来体现的也就是掩码; 掩码位于IP地址后面通过/分割。将掩码转换为二进制后进行和IP地址的&操作


掩码可以采用同样的32个字节的数字表示(1的部分为网络号,0为主机号 和IP地址与运算得出,比如B);也可只记录网络号的长度(比如C)。

IP和域名各自优缺点

IP:TCP/IP协议是通过IP地址通信的,但是人们很难记住IP地址,相反使用域名人们只要知道这个服务器网站的名字就可以,很方便也很好记忆

域名 :域名虽然相对好记,但是如果使用域名代替IP地址的话也是可以的(Windows网络原型PC-Networks就是使用域名代替的ip通信的);那么为什么这种方式不用了呢? 这是因为域名的长度不固定需要处理大量的字符,但是IP地址的话就是固定的4个字节的数据,路由器在中转传输的时候压力就会小很多。

结合各自优势来看的话,各有各的好处,但是也有缺点。域名相对于人来说更好记忆,相对路由器来说IP地址处理的效率会更高 。那么就需要一个转换的机制来做映射,通过域名查找IP给路由器使用,这个转换器就是DNS服务器

域名解析

DNS客户端(使用域名访问的机器)也叫作DNS解析器,使用DNS查找域名对应的IP地址叫做域名解析,那么浏览器如何向DNS服务器发起查询的呢?

答案是使用Socket程序库

大致流程

浏览器会调用socket库中的getHostByname程序并把对应域名填写到参数中,之后发起请求,DNS服务器会返回具体的IP地址,操作系统把这个IP地址写入到浏览器指定的内存地址中。当浏览器访问的时候从这块内存中取出IP地址并和请求信息一并交给操作系统处理。

原文链接:使用DNS查询Web服务器IP地址 - 掘金 (juejin.cn)

相关推荐
qinyia31 分钟前
Wisdom SSH 是一款创新性工具,通过集成 AI 助手,为服务器性能优化带来极大便利。
服务器·人工智能·ssh
liulilittle4 小时前
OPENPPP2 —— IP标准校验和算法深度剖析:从原理到SSE2优化实现
网络·c++·网络协议·tcp/ip·算法·ip·通信
晓衣5 小时前
2025“獬豸杯”全国电子数据取证竞赛-k8s服务器取证wp
服务器·经验分享·程序人生·网络安全·容器·kubernetes·学习方法
li35745 小时前
将已有 Vue 项目通过 Electron 打包为桌面客户端的完整步骤
前端·vue.js·electron
Icoolkj5 小时前
VuePress 与 VitePress 深度对比:特性、差异与选型指南
前端·javascript·vue.js
excel6 小时前
CNN 分层详解:卷积、池化到全连接的作用与原理
前端
excel6 小时前
CNN 多层设计详解:从边缘到高级特征的逐层学习
前端
2301_794333917 小时前
实验室服务器配置|通过Docker实现Linux系统多用户隔离与安全防控
linux·服务器·docker·实验室
西陵7 小时前
Nx带来极致的前端开发体验——任务编排
前端·javascript·架构
大前端helloworld7 小时前
从初中级如何迈入中高级-其实技术只是“入门卷”
前端·面试