一、位置

图片 1

一、hosts是什么?

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

1、Window系统位置

1、URL是什么

全称URL(uniform resource locator),即统一资源定位符。

统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
它最初是由蒂姆·伯纳斯·李发明用来作为万维网的地址。现在它已经被万维网联盟编制为互联网标准RFC1738了。

二、hosts工作机制

浏览器访问网站,要首先通过DNS服务器把要访问的网站域名解析成一个唯一的ip地址,之后,浏览器才会对此网站进行定位并且访问数据。

操作系统规定,在进行DNS请求之前,先检查自己的hosts文件中是否有这个域名和ip的映射关系,如果有,则直接访问这个ip地址指定的网站位置,如果没有,再向已知的DNS服务器提出域名解析请求,也就是说hosts的ip解析优先级比DNS要高。

 

2、URL的结构

基本URL包含模式(或称协议)、服务器名称(或IP地址)、路径和文件名。

  • 第一部分:模式/协议:它告诉浏览器如何处理将要打开的文件。我偶们最常用的就是http,除此之外还有常用的在本地电脑打开文件的file协议,等等。
  • 第二部分:文件所在的服务器的名称或IP地址,后面是到达这个文件的路径和文件本身的名称。服务器的名称或IP地址后面有时还跟一个冒号和一个端口号,它也可以包含接触服务器必须的用户名称和密码。路径部分包含等级结构的路径定义,一般来说不同部分之间以斜线(/)分隔。询问部分一般用来传送对服务器上的数据库进行动态询问时所需要的参数。

图片 2

三、hosts具体作用

1.加快域名解析:

对于要经常访问的网站,我们可以通过在Hosts中配置域名和IP的映射关系,提高域名解析速度。由于有了映射关系,当我们输入域名计算机就能很快解析出IP,而不用请求网络上的DNS服务器。

2.方便局域网用户

在很多单位的局域网中,会有服务器提供给用户使用,但由于局域网中一般很少架设DNS服务器,访问这些服务器时要输入难记的ip地址。这对不少人来说相当麻烦。可以分别给这些服务器取个容易记住的名字,然后再host中建立ip映射,这样以后访问的时候只要输入这个服务器的名字就可以了。

3.屏蔽网站(域名重定向)

有很多网站不经过用户同意就将各种各样的插件安装到你的计算机中,其中有些说不定就是木马或病毒,对于这些网站我们可以利用hosts把该网站的域名映射到错误的ip或本地计算机的ip,这样就不用访问了。在windows系统中,约定127.0.0.1为本地计算机的ip地址,0.0.0.0是错误的ip地址。

举例:

127.0.0.1 # 要屏蔽的网站 A

0.0.0.0 # 要屏蔽的网站 B

这样,计算机解析域名A和
B时,就解析到本机IP或错误的IP,达到了屏蔽网站A 和B的目的。

4.顺利连接系统

对于lotus的服务器和一些数据库服务器,在访问时如果直接输入ip地址是不能访问的,只能输入服务器哦才能访问,那么我们配置好hosts文件,这样输入服务器名就可以顺利连接了。

C:\Windows\System32\drivers\etc

3、输入url到页面返回的全过程(简写)

  1. 我们输入一个域名:www.baidu.com

  2. 浏览器查找浏览器缓存,如果有域名的IP地址则返回,如果没有继续查找;

  3. 系统查找系统缓存,如果有域名的IP地址则返回,如果没有继续查找;

  4. 路由器查找路由器缓存,如果有域名的IP地址则返回,如果没有继续查找;

  5. 本地域名服务器采用迭代查询,它先向一个根域名服务器查询;

  6. 根域名服务器告诉本地域名服务器,下一次应查询的顶级域名服务器dns.com的IP地址;

  7. 本地域名服务器向顶级域名服务器dns.com进行查询;

  8. 顶级域名服务器dns.com告诉本地域名服务器,下一次应查询的权限域名服务器dns.baidu.com的IP地址;

  9. 本地域名服务器向权限域名服务器dns.baidu.com进行查询;

  10. 权限域名服务器dns.baidu.com告诉本地域名服务器,所查询的主机www.baidu.com的IP地址;

  11. 本地域名服务器最后把查询结果告诉主机;
  12. 主机浏览器获取到Web服务器的IP地址后,与服务器建立TCP连接;
  13. 浏览器所在的客户机向服务器发出连接请求报文;
  14. 服务器接收报文后,同意建立连接,向客户机发出确认报文;
  15. 客户机接收到确认报文后,再次向服务器发出报文,确认已接收到确认报文;
  16. 此处客户机与服务器之间的TCP连接建立完成,开始通信;
  17. 浏览器发出取文件命令:GET;
  18. 服务器给出响应,将指定文件发送给浏览器;
  19. 浏览器释放TCP连接;
  20. 浏览器所在主机向服务器发出连接释放报文,然后停止发送数据;
  21. 服务器接收到释放报文后发出确认报文,然后将服务器上未传送完的数据发送完;
  22. 服务器数据传输完毕后,向客户机发送连接释放报文;
  23. 客户机接收到报文后,发出确认,然后等待一段时间后,释放TCP连接;
  24. 浏览器显示页面中所有文本。

四、hosts文件的修改

方法1:

打开Finder,然后快捷键command+shift+g前往文件夹,输入

/etc/hosts

双击打开即可编辑,然后保存。

如果没有权限修改

图片 3

没有权限

需要设置etc文件夹的访问权限以及hosts文件的访问权限,步骤是:右键–显示简介–共享与权限–修改everyone
读与写。

方法2

 在terminate中输入

$ sudo -i

临时获取管理员权限,输入密码

然后编辑hosts

$ vi /etc/hosts

$ i

然后退出编辑 ESC–:–wq

或者直接

$ sudo vi /etc/hosts

输入密码,修改内容,退出编辑。

方法1和方法2修改之后都需要刷新DNS记录,使用命令:

windows:  ipconfig /flushdns

mac:   sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder;
say DNS cache flushed

五、hosts相关dns缓存

查看本机已经缓存了的那些dns缓存信息

$ ipconfig /displaydns

清空本机上的dns缓存

$ ipconfig /flushdns

 

4、输入url到页面返回的全过程(详细)

因为觉得写得很好很清晰,此处引用同学的答案

第一步、在本地DNS缓存和hosts文件查找对应ip

在本地DNS缓存中查找域名对应ip浏览器和操作系统在获取网站域名的实际IP地址后会对其IP进行缓存,在短时间内重复访问同一域名时,会直接在DNS缓存中读取域名对应的IP地址,以减少网络请求的损耗(先在浏览器DNS缓存中查找,如果没有找到,则会在操作系统DNS缓存中查找)。浏览器和操作系统都有一个固定的DNS缓存时间,其中Chrome的过期时间是1分钟,在这个期限内不会重新请求DNS。2、查询hosts文件如果在本地DNS缓存中没有找到域名对应的IP地址,则会查询hosts文件,看其中是否已经有与当前域名对应的
IP
地址,如果有就会直接采用,如果没有,那么就得由DNS服务器进行域名解析完成域名与IP的转换工作。

2、Linux系统位置

第二步、域名解析

DNS域名系统DNS(Domain Name
System):用来把人们使用的域名转换为IP地址的系统。它是一个联机分布式数据库系统,采用客户服务器方式。2、DNS解析域名到IP地址的解析:当浏览器需要把域名解析为IP地址时,会调用解析程序,并成为DNS的一个客户,把带解析的域名放在DNS请求报文中,以UDP用户数据报方式发送给本地域名服务器可以是路由器或者是运营商服务器)。本地域名服务器在查找域名后,把对应的IP地址放在回答报文中返回。浏览器在获取相应的IP地址后即可进行下一步的通信。

/etc/hosts 
第三步、浏览器发送请求给服务器

当浏览器得到域名对应的IP地址后,则会使用TCP协议,和服务器建立连接(三次握手)。2、和服务器建立连接后,浏览器则会使用相关协议(http或https),向服务器发送请求。3、HTTP协议请求方法主要有:get、post、put、delete等几种方式。

 

第四步、服务器请求并返回结果

服务器上的web
server来处理这些请求。以MVC框架为例,当服务器收到来自用户的请求后,首先Controller(控制器)根据用户的请求调用相应的Model(模型)去处理用户请求相关的业务逻辑(包括对数据库的增删改查),然后将处理结果传递给对应的View(视图),构造显示页面(HTML文件)。最后服务器使用HTTP响应返回相应的资源(HTML文件)。

图片 4

二、作用

第五步、浏览器处理响应

浏览器收到来自服务器的响应后,会将响应中的HTML字符串一句句读取解析,解析到link标签后重新发送请求下载css文件,解析到script标签后重新发送请求下载js文件,并执行代码,解析到img标签后重新发送请求获取图片资源。

综述:Hosts文件中指定了域名和IP地址的对应关系,如果一个域名在hosts文件中指定了IP地址,在访问此域名时,系统将不会通过DNS(Domain
Name
System)来解析它的IP地址,而是直接访问所指定的IP地址。也就是说,在hosts文件的帮助下,我们可以绕过DNS服务器而直接访问一些域名。

1、 hosts就相当于本地的一个dns缓存,比如说什么需要访问一个网站,如果没有hosts文件的本地解析的话就需要的浏览器访问远程的dns解析服务器,等待dns服务器返回ip信息后我们的浏览器才可以向目标网址所指向的服务器发出请求,但是如果有了hosts文件的本地缓存解析,我们的浏览器就不会去访问远程的dns服务器了,而是直接发出向网站服务器的请求,所以说hosts文件可以加快我们打开网站打开的速度;

2、可以用来屏蔽任何网站。虽然说hosts文件是系统属性文件,但是我们可以修改它,从而达到我们的一些实用的应用。举一反三,我们还可以用来屏蔽某些网站的插件,弹窗广告等等。

3、格式

ip地址+空格+域名+#解析+回车”

例如:

  127.0.0.1 www.baidu.com #屏蔽域名www.baidu.com

 

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注