为什么域名访问比IP慢?

部署运行你感兴趣的模型镜像



作者:姚冬
链接:https://www.zhihu.com/question/55707634/answer/145902300
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

如今互联网的基础协议是 IP 协议,在IP之上是 TCP/UDP,再往上是 HTTP等应用协议。

IP的传输的基础是IP地址,路由器都是只认IP地址,不认域名的。

域名是为了方便理解而存在的,也解决了IP地址和网络服务设备的关系不固定的问题。

在使用域名访问网络的时候先要把 域名解析成IP地址,这个解析服务就是DNS。

访问DNS一般来说是很快的,就是一个UDP包来回,但是总要花点时间,所以用域名注定比用IP慢一点。

但是DNS不总是很快的,有时会非常慢,甚至根本就无法使用,这就造成了用域名访问网络会遇到各种不稳定问题。

每台互联网终端设备,比如 PC 手机,都会有一个默认DNS,你在PC上输入

ipconfig /all

就可以看到默认DNS的IP地址。

所谓域名解析服务就是通过查表把 域名换算成IP的过程,访问网络的时候把域名发送到DNS服务器,然后从DNS获取解析后的IP地址,如果DNS服务器上有域名到IP的对照表,那么这个解析就很快,如果没有,DNS服务需要向它的上层服务去询问,这样一层一层问上去,直到找到这个对照表为止,这个过程时间就很不可控了,有时几百毫秒,慢起来10秒钟都可能。

所以上规模的互联网服务商都会自建DNS,就是防止网络服务商的域名解析服务不靠谱的问题。

有时候DNS解析失败也不是网络服务商的责任,有可能是中间某个路由的问题把DNS包搞丢了,屏蔽了,或者导入到流量黑洞去了。因为UDP包并不可控。

有的厂商实现了HTTP DNS,这个HTTP请求是基于IP地址的本身不需要再解析一次域名,基于HTTP协议就很少被拦截,如果HTTP都被拦截就是断网了。

DNS服务不仅仅解决域名和IP的对应问题,还会解决就近接入和负载均衡问题。你会发现用同一个域名在不同地方,不同上网方式下得到的IP地址都不一样,比如用电信宽带和移动4G上网会得到不同的IP,你在北京和上海访问同一个网站IP也不一样,甚至同一个地点同一个网络不同时间得到的IP也不一样。这就是DNS服务根据需要给你选择了最佳接入的IDC,并且根据服务器负载选择了最佳服务器。这个决策过程也是需要时间的。





您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 网页访问速度特别的原因分析 网页访问速度变可能由多种因素引起,以下从服务器配置、网络状况、DNS解析、Nginx配置以及静态资源优化等多个角度进行详细分析。 #### 1. 服务器性能不足 如果服务器的硬件资源(如CPU、内存或磁盘I/O)不足,可能导致网站加载速度变。此外,云服务器的地理位置也会影响访问速度。例如,当用户距离服务器较远时,网络延迟会增加[^3]。同时,网络带宽不足也是一个常见原因,尤其是在高并发访问的情况下[^4]。 #### 2. DNS解析时间过长 每次用户访问网站时,浏览器需要将域名解析为IP地址。如果DNS解析速度较,会导致整体加载时间增加。DNS解析速度受多个因素影响,包括DNS服务器的性能和网络中转节点的数量。 #### 3. Nginx配置不合理 Nginx作为常用的Web服务器软件,其配置直接影响网站的性能。不合理的配置可能导致请求处理效率低下。例如,未启用Gzip压缩、缓存设置不当或连接超时时间过短等问题都可能影响访问速度[^5]。 #### 4. 静态资源加载问题 静态资源(如图片、CSS文件和JavaScript文件)的加载速度对网页的整体性能至关重要。如果这些资源过大或未经过优化,可能会显著增加页面加载时间。此外,过多的HTTP请求也会导致性能下降。可以通过合并文件、使用CDN加速和启用浏览器缓存等方式来优化静态资源加载[^2]。 #### 5. JavaScript脚本执行时间过长 复杂的JavaScript脚本可能导致页面渲染变。如果脚本过大或存在阻塞操作,可能会延迟其他资源的加载。建议将非关键的JavaScript代码异步加载,并尽量减少不必要的DOM操作[^4]。 #### 6. 数据库查询效率低 对于动态网站,数据库查询效率也是一个重要因素。如果SQL查询未经过优化,或者索引设计不合理,可能会导致页面响应时间延长。可以使用查询缓存、分页加载等技术来提高数据库性能[^1]。 #### 示例代码:优化Nginx配置 以下是一个简单的Nginx配置示例,用于提高网站性能: ```nginx http { gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; keepalive_timeout 65; fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; } ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值