请求链

一个完整的HTTP请求发出,操作系统做了什么?

  1. 先去找本机的DNS服务配置。也就是找本机的hosts文件。
  2. 如果本机文件没有相关的配置,则去找远程DNS服务器查找相关配置。
  3. 拿到配置(IP)后,就会向服务站点发送请求。
  4. 开始HTTP的三次握手、四次挥手操作了。

Windows 一共2处地方存放着我们的DNS服务器规则

  • 本地DNS服务器。C:\Windows\System32\drivers\etc 下的hosts文件
  • 远程DNS服务器。

如果本机、远程DNS服务器都没有配置。那么你访问的此网站就响应404。实际我们底层通信不是域名,域名只是个代号。实际通信的是IP地址。本机hosts文件存放着对应的 IP 域名。远程DNS服务器也是如此。

配置规则,实现本机域名

进入C:\Windows\System32\drivers\etc 用任意的文本编辑器编辑hosts文件

# Copyright (c) 1993-2009 Microsoft Corp.
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
# 此文件包含IP地址到主机名的映射。每个
# 条目应单独保存在一行中。IP地址应该是
# 将被放置在第一列中,后跟相应的主机名。
# IP地址和主机名之间至少应有一个分隔符
# 空间。
#
# 机器名称后面 以“#”符号表示注释,为了方便自己知道添加这个记录是做什么的,可省略
#
# 例如:
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# 本地主机名解析在DNS本身内处理。
#	127.0.0.1       localhost
#	::1             localhost
127.0.0.1       activate.navicat.com

既然看了上面的内容,我们就手动添加一条吧。记得保存!

127.0.0.1       www.baidu.com # 将百度ip 指向本机器

好了,如果你本机80端口没有开放服务,那么你访问百度就无响应了!因为操作系统在发起请求的时候,查询了本地的DNS服务器,并且有响应,就不会找远程DNS获取配置了

Mac配置Host文件

sudo vi /etc/hosts

配置完后,直接使用vim语法添加记录即可。

这是默认规则

特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤