HOSTS 文件是什么
看hosts 文件说明:
这是Microsoft TCP/IP for Windows使用的示例 HOSTS 文件。
此文件包含IP地址到主机名的映射。每个条目应保留在单独的行上。IP地址应放置在第一列中,后跟相应的主机名。
众所周知,一次完成的HTTP请求过程可以分为以下几步:
- 首先在浏览器中输入网址
- 浏览器根据域名解析IP地址
- 浏览器根据解析的IP地址与web服务器建立一个TCP连接
- 浏览器给服务器发送HTTP请求
- 服务器的永久重定向响应
- 浏览器跟踪重定向地址
- 服务器处理请求
- 服务器发回一个HTTP响应
- 释放TCP连接
- 客户端浏览器解析HTML内容
其中的第二步就和上面提到的hosts文件有很重要的联系。浏览器访问网站,要首先通过DNS服务器把要访问的网站域名解析成一个唯一的IP地址,之后,浏览器才能对此网站进行定位并且访问其数据。
在引入DNS(Domain Name System,域名系统)之前,网络中的主机是将容易记忆的域名映射到IP地址并将它保存在一个共享的静态文件hosts中,再由hosts文件来实现网络中域名的管理。最初Internet非常小,仅使用这个集中管理的文件就可以通过FTP为连入Internet的站点和主机提供域名的发布和下载。每个Internet站点将定期地更新其主机文件的副本,并且发布主机文件的更新版本来反映网络的变化。
但是,当Internet上的计算机迅速增加时,通过一个中心授权机构为所有Internet主机管理一个主机文件的工作将无法进行。文件会随着时间的推移而增大,这样按当前和更新的形式维持文件以及将文件分配至所有站点将变得非常困难,甚至无法完成,于是才有了DNS服务器。
操作系统规定,在进行DNS请求以前,先检查自己的Hosts文件中是否有这个域名和IP的映射关系。如果有,则直接访问这个IP地址指定的网络位置,如果没有,再向已知的DNS服务器提出域名解析请求。也就是说Hosts的IP解析优先级比DNS要高。
以简书为例,输入:https://www.jianshu.com ,浏览器在发起请求之前其实会先进行域名解析,获取到对应的 IP 地址,首先会先去 HOSTS 文件(优先级更高)进行解析看有没有对应的域名和 IP 映射,有的话就直接获取,没有的话再进行 DNS 域名解析,因此我们可以把常用的域名和 IP 的映射写到 HOSTS 文件中。
网络上有些黑客也是基于此来修改用户的 HOSTS 文件,从而达到劫持的目的。
简单记忆:域名和 IP 映射,优先于 DNS 解析
HOSTS 作用
- 加快域名解析
- 方便局域网用户
一般局域网很少假设DNS服务器,访问这些服务器时,就需要输入难记的IP地址,这相当麻烦。(在golang实现跨域访问一文中,之所以ajax请求本地搭建的服务器时,需要输入http://127.0.0.1:8000/ajax,而不是http://localhost:8000/ajax,就是因为自己的hosts文件中没有配置相关IP信息。所以一般HOSTS 文件会配置
127.0.0.1 localhost #IPV4
::1 localhost #IPV6,:1表示ipv6的本地地址,也就是0000:0000:0000:0000:0000:0000:0000:0001
- 屏蔽网站
对于一些弹窗类的垃圾网站,我们可以利用Hosts把该网站的域名映射到错误的IP或本地计算机的IP,这样就不用访问了。在WINDOWS系统中,约定 0.0.0.0是错误的IP地址。
HOSTS 文件位置
windows: C:\Windows\System32\drivers\etc (记不住可设置为快速访问)
Linux: /etc
(该目录下都是系统配置相关)
注意:在windows 直接修改 HOSTS 如果报权限不足,可以复制到桌面下修改好了再粘贴覆盖即可。
扩展
查看域名对应IP 的方法
1、站长工具
2、使用 ping 指令 ping jianshu.com
网友评论