V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
chshouyu
V2EX  ›  问与答

关于敲入网址到展现服务器上的文件的过程。。。

  •  
  •   chshouyu · 2013-07-09 00:04:11 +08:00 · 3473 次点击
    这是一个创建于 4160 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我现在的基本了解是:
    浏览器敲入网址 --> dns服务器解析域名为ip地址 --> 服务器响应

    但是有如下附加问题:
    1. 如果我在国外的域名服务商,比如godaddy那里买了一个example.com,我把它的ns记录修改为国内的dnspod,那当我浏览器输入这个网址时,还要经过godaddy吗?即我敲入网址后,首先经过谁?电信服务商?
    2. 本机的dns是干什么用的?当我改为公共dns服务时,比如改为谷歌的8.8.8.8或者v2ex的dns服务,当再访问网站时,这个过程会发生哪些改变?
    3. 这个属于问题1的附加。我觉得如果把dns解析服务器比喻成一个人话,全球每个地区的人访问任何网站,应该都要经过一个dns解析服务器,那么这个人是谁呢?是谁去决定某个网址由哪个dns解析服务商去解析?
    18 条回复    1970-01-01 08:00:00 +08:00
    tension
        1
    tension  
       2013-07-09 00:28:43 +08:00
    我木有耐心 敲完想回答的话,楼下来吧 =)
    sophy
        2
    sophy  
       2013-07-09 00:44:08 +08:00
    1.不清楚,我觉得 不用,根域名服务器已经更新了
    2.解析用的,你不填的时候从你的电信运营商那里获取,填了就用你填的
    3. 根域名服务器
    mongodb
        3
    mongodb  
       2013-07-09 00:51:52 +08:00
    说起来的确复杂,我也没耐心,简单提示。

    你访问网站,向你使用的dns服务器发出请求,就是像你用的8.8.8.8之流发出去。他们查自己有没有存下域名和IP对应的记录,查到了就直接返回IP给你,查不到,就继续向指定的上层DNS服务器查询。
    其实不一定是“上层”,反正就是指定的“比自己牛逼知道的更多的一个DNS服务器”去查。
    查到了再一个个返回来。
    那个牛逼的服务器还没记录,就继续找“更牛逼更全的有NS记录的服务器”去。

    到现在你可以去搜索一个关键词叫“根域名服务器”,然后你应该能得到你要的答案了。
    gracece
        4
    gracece  
       2013-07-09 08:15:23 +08:00
    楼主找一本 《计算机网络》 翻看下DNS部分,应该就能有一个比较好的理解。
    jjplay
        5
    jjplay  
       2013-07-09 09:26:22 +08:00   ❤️ 1
    看了LZ的头像 就知道您一定是 努力上进又叛逆不羁的好孩子,有一种东西叫做根服务器
    chshouyu
        6
    chshouyu  
    OP
       2013-07-09 10:36:43 +08:00
    @mongodb 非常感谢
    chshouyu
        7
    chshouyu  
    OP
       2013-07-09 10:37:44 +08:00
    @gracece 额 我记得我大学学过这门课,不过挂掉了,毕业后课本也卖了。。。。。
    chshouyu
        8
    chshouyu  
    OP
       2013-07-09 10:39:08 +08:00
    @jjplay “努力上进又叛逆不羁的好孩子”,这是对我的最好写照
    tarsier
        9
    tarsier  
       2013-07-09 10:45:48 +08:00
    1. 经过ISP到dnspod的服务器查询,当然很可能你的运营商的dns上会缓存好dns记录,直接返回。
    2. dns有一个生命期的概念,意味着dns记录的更新频率。本机的dns会缓存一些dns记录(毕竟这玩意不会经常变化)。不管你的公共dns改成啥,每次的域名查询都会先走本地的dns
    3. 这东西,你可以理解成你是一个提问题的人。你首先会问离你比较近的人(本机dns),没得到回答会往上一级的人提问(ISP的dns)。如果大家都不知道,那么全球会有一些仲裁(根dns),他们会保证知道答案,或者指导你哪些人可能知道答案,你去问那些知道答案的人
    pianai
        10
    pianai  
       2013-07-09 10:52:51 +08:00
    DNS递归和迭代解析

    一般的dns解析都是递归,不用跑到美国,比如人在苏州dnspod会更新dns记录到苏州电信dns服务器
    迭代是递归服务器没有记录,需要向上找到dns root解析。
    sivacohan
        11
    sivacohan  
       2013-07-09 11:10:00 +08:00
    《BIND 与 DNS》

    http://shop.oreilly.com/product/9780596100575.do

    看前几章就足够了
    chshouyu
        12
    chshouyu  
    OP
       2013-07-09 11:21:18 +08:00
    感谢各位盛情解答~
    treo
        13
    treo  
       2013-07-09 22:56:56 +08:00
    我来v2ex后产生的最大疑问是:
    现在网络原理不是cs专业的必修课了?
    Kymair
        14
    Kymair  
       2013-07-09 23:38:29 +08:00
    通常我们所说的DNS server,一种是resolver(例如8.8.8.8, 114.114.114.114, 电信运营商提供的),一种是authoritative name servers, 这个就是权威的,你平常改的NS记录那个server

    1. 不会再经过Godaddy了。你修改NS记录,就是修改了example.com这个域的authoritative name servers

    2. 本机的DNS和公共DNS服务都只是resolver, 提供缓存服务的。它们可以缓存.com, 可以缓存example.com, 可以缓存abc.example.com

    3. 全球有13台根服务器。(逻辑上,实际上每一台都是由很多台进行负载均衡的。)
    chshouyu
        15
    chshouyu  
    OP
       2013-07-11 00:55:45 +08:00
    @Kymair 多谢
    chshouyu
        16
    chshouyu  
    OP
       2013-07-11 00:56:11 +08:00
    @treo 忘了是必修还是选修了。。
    lhx2008
        17
    lhx2008  
       2013-07-11 18:35:38 +08:00   ❤️ 1
    1.输入网址
    2.浏览器寻找是否IP被缓存
    3.未被缓存,则向本地DNS服务器发送域名数据(8.8.8.8)
    4.8.8.8.8查看域名是否被缓存
    5.没有,像DNSPOD之流查询
    6.服务器响应,向原始IP返回信息
    其实我也有不明白的,跟服务器的存在意义是什么?到达DNSPOD这一个级别就可以得到响应了啊。
    回LZ
    1.不经过Godaddy,肯定先经过电信服务商了
    2.不设置就用电信自己提供的,设置了就用设置了的,变化?电信自己的顺带上Tmall给你跳转一下。
    3.DNSPOD设置会在WHOIS里面附带,可以用nslookup查询到本机的DNS服务器,再由DNS服务器向DNSPOD那种DNS服务器发送请求吧,再上我也搞不懂,球指教
    sinxccc
        18
    sinxccc  
       2013-07-11 19:34:43 +08:00
    这是个经典的面试问题啊…所有跟网络沾边的职位都能问,基本对网络有点了解的人也都能答,但能答多少就看各人理解了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4896 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 04:00 · PVG 12:00 · LAX 20:00 · JFK 23:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.