系统缓存&&DNS缓存

学过计算机组成原理的伙伴应该知道cache,我们的计算机的存储是分:内存+磁盘+缓存的。对于一些频繁在计算机内使用的东西,计算机很聪明的将其扔进缓存,而和dns解析相关的缓存,就叫做dns缓存。

DNS全过程

哈哈哈哈,为了查找域名对应的ip,可累坏了
1.浏览器缓存
2.系统缓存
3.系统hosts文件
4.ldns 本地域名服务器(这台服务器一般在你的城市的某个角落,距离你不会很远,并且这台服务器的性能都很好,一般都会缓存域名解析结果,大约80%的域名解析到这里就完成了)
5.root dns 根域名服务器

餐前点心

什么是hosts文件?

简单的说,hosts文件是用于本地dns服务的,采用ip 域名的格式写在一个文本文件当中,Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析。

一般来说,当用户在电脑浏览器里输入网址(域名)后,系统需要通过查询网络上的 DNS 服务器,才能将域名 (比如 iPlaySoft.com) 解析成对应的 IP 地址,浏览器通过 IP 地址才能找到该网站所在的服务器并进行访问。
操作系统的 hosts 文件则是有着“类似本地 DNS 服务器”的作用,而且比网络上的 DNS 具有更高的优先级

想直接修改C盘下的hosts文件,需要权限,必须复制到其他盘符才能修改,而使用switchhosts可以直接对hosts文件进行修改

为什么要修改?

日常开发工作中,我们可能经常需要切换各种 hosts 绑定,比如在本地开发时可能需要一个开发环境的 hosts 绑定方案,发布到测试环境后又有一个测试环境的 hosts 绑定方案,然后可能还有一个预发布环境,最后可能才是真实的线上环境。本地开发过程中,还可能有多组不同的 hosts 需要绑定,比如前端开发环境,数据库对应的开发环境……。其结果就是,我们经常需要在各个 hosts 绑定之间切换,这会花掉不少时间,而且这个过程毫无乐趣可言

switchHosts三部曲

what?
1、switchhosts他是管理、快速切换hosts的小工具,switchhosts是开源(他是基于js的使用到了electron框架)软件,一键就可以切换hosts,是非常实用并且高效滴。
why?
2、开发web过程中,部署多套环境,网址域名都相同,部署到不同的服务上:有开发环境、测试环境、生产环境等。经常需要切换hosts来访问,测试以及验证bug,如果手工修改的话,需要浪费不少时间。
how?
3、为什么要以管理员的身份去开启switchhosts?

SwitchHosts官网:https://oldj.github.io/SwitchHosts/#cn
去其官网看了下,了解到这个app是用js编写的,
SwitchHosts! is an App for managing hosts file, it is based on Electron, React, Ant Design, CodeMirror, etc.
而其commiters也有个不到20人,希望以后我也能慢慢的加入开源代码中,为这个世界作出一点贡献!

餐后巩固
https://www.iplaysoft.com/switchhosts.html

修改hosts文件不生效------清理dns缓存
win: ipconfig /flushdns
在这里插入图片描述

chrome浏览器清楚dns缓存:chrome://net-internals/#dns
在这里插入图片描述

GitHub 加速计划 / sw / SwitchHosts
23.12 K
2.45 K
下载
Switch hosts quickly!
最近提交(Master分支:2 个月前 )
e637c34e Bump axios from 1.7.2 to 1.7.4 1 个月前
42e0198e Bumps [axios](https://github.com/axios/axios) from 1.7.2 to 1.7.4. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v1.7.2...v1.7.4) --- updated-dependencies: - dependency-name: axios dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> 1 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐