计算机网络01-当你输入一个网址的时候,实际会发生什么?

1. 输入网址

我们以www.facebook.com为例

2. 域名解析

  • 2.1 DNS查找过程
    1. 浏览器缓存:浏览器会缓存DNS一段时间(2-30分钟不定,视浏览器情况而定)。
    2. 系统缓存:如果浏览器中没有缓存,则在windows里面的gethostbyname获取DNS缓存信息。(对应的有 DNS劫持更改攻击)
    3. 路由器缓存:如果在系统缓存里面也没有缓存,则在路由器里面也会有DNS缓存;
    4. ISP的DNS缓存:如果路由器缓存还是没有,这个请求就会被发送到ISP(因特网服务供应商,就是中国移动,电信。。。)的DNS服务器查询缓存。
    5. 根域名服务器:如果ISP缓存还是没有,则向根域名服务器进行搜索。(根域名服务器是面向全球的13台顶级DNS服务器,逻辑编号A-M,分布于全球各大州,这些服务器有真正完整的DNS数据库)。如果到这步还没有,说明此域名不存在,或者这个域名没有被注册。
    • 递归查找——DNS缓存里没有的话,ISP DNS服务器会先后从根域名服务器(root).com顶级域名服务器Facebook域名服务器获取IP(一般缓存内都会有,所以这一步一般不会发生)
      计算机网络01-当你输入一个网址的时候,实际会发生什么?_第1张图片

这也就是为什么打开一个新页面会有点慢,因为本地没什么缓存,要这样递归地查询下去。
多说一句,例如"mp3.baidu.com",域名先是解析出这是个.com的域名,然后跑到管理.com域名的服务器上进行进一步查询,然后是.baidu,最后是mp3,

  所以域名结构为:三级域名.二级域名.一级域名。
  • 2.2 多IP域名 DNS查询解决方案
    1. 循环DNS:一个域名对应DNS列表,循环DNS;
    2. 负载均衡:一个特定的IP负载均衡服务器(反向代理服务器)接受请求并转发给服务器集群的某一个,实现多个域名的负载均衡;
    3. 地理DNS:根据用户的地理信息,返回一个IP(应用:CDN);
    4. anycast:一个IP映射多个物理主机技术;

3. 发送Http请求

link:http://www.jianshu.com/p/1fb8a89a0b32

参考

  1. 输入网址之后发生了什么
  2. https://www.nowcoder.com/questionTerminal/4150a74bd14d4bd3a0d3f133376c97c7

你可能感兴趣的:(计算机网络01-当你输入一个网址的时候,实际会发生什么?)