我想对于很多非CS专业的人来说,排名最高的答案可能过于专业,很难看完并且看明白。而且大家可能只是想了解一下,所以我就写了这么一篇答案,中间跳过了很多细节,并且也没有说如果发生了错误什么的要怎样之类的。
我们假设Chrome浏览器是专门负责根据URL寻找并打开网页的人。
-----------
昨天,Chrome先生的老板给了他一个URL地址,并对他说:“去吧,Chrome!”
步骤0:识别URL
Chrome先生低头看了看老板给的URL,完整的URL是由协议(比如http,ftp)、域名(比如 http://www.baidu.com )、文件路径(比如/htm_data/20/1510/1441477.html这样的)和端口(比如:80)四个部分组成的,老板只给了域名 http://www.zhihu.com ,不过没关系。
“这就够了。”Chrome先生自信的一笑,走向了老板。
步骤1.查找本地hosts文件
“虽然老板已经给了我URL地址,但是网页(文件)是保存在服务器上的,要找到老板要的东西就要找到保存文件的服务器,要找到服务器就要先知道服务器的IP地址。”Chrome先生如是想。
Chrome从老板的抽屉里找出一个笔记本。
老板好奇的问:“Chrome,为什么每次我要你给我打开个网页你都要看看这个破本子,这到底是干什么的?”
Chrome:“hosts文件,用来保存域名以及域名对应的IP地址。”
Chrome打开一看,不出所料,里面空空如也,于是Chrome又把笔记本放回了原处。
老板好奇地问:”Chrome,为什么里面是空的?”
“因为你不会科学上网啊,把一个网站的域名写到这个文件里,写一个空格,后面再加上一个该网站可以用的服务器的IP地址,以后访问这个网站的话就会直接访问这个IP对应的服务器了。”
步骤2.1询问本地域名服务器
Chrome看了看手里的域名,“越高级的域名越靠后,必须要先找后面的域名,然后才能进一步的找到整个域名啊。”
Chrome用自己的手机拨了一个神秘的电话。
老板好奇的问:“Chrome,你在跟谁打电话?”
Chrome:“地儿,我一朋友,是个本地域名服务器,哎呀你不认识。”
对方很快接通了。
Chrome:”喂,地儿吗?哎对,是我,问你个事儿, www.baidu.com 这个网址你见过没?……什么?咱们这附近没人上过这个网站?昂……你给我查查?哎……行行行……哎好嘞,没事,不着急啊。“
说完Chrome并没有挂掉电话,依旧把手机放在耳朵边上听着,还抽空跟老板解释了一句:“根儿也不知道。”
老板好奇的问:“你挂了电话让他打回来不就行了?”
Chrome:“就不。”
步骤2.2询问根域名服务器
话分两头,这边的本地域名服务器又拿起一部手机,打开了一个叫“找根儿”的APP。
这个找根儿APP是干嘛的呢?顾名思义,就是用来找根域名服务器的了,要知道全世界有数百个根域名服务器,简而言之,“找根儿”可以帮你找到通话质量最好的那个。
我们还是叫他地儿吧。
地儿:“喂,您好,麻烦帮我查一下com这个顶级域名的域名服务器的IP地址。”
神秘的对方一号:“好的,您要查的IP地址是:2.3.4.5,感谢您的来电,再见。”说完挂了电话。
地儿又给2.3.4.5播了个电话:“喂,您好,我想查一下你们那个zhihu的二级域名的域名服务器地址。”
神秘的对方二号:“好的,您要查的IP地址是:3.4.5.6,感谢您的来电,再见。”说完挂了电话。
地儿又不厌其烦的给3.4.5.6拨了个电话:“喂,您好,我想查一下你们那个wwwl的三级域名的域名服务器地址。”
神秘的对方三号:“好的,你要查的IP地址是:4.5.6.7,感谢您的来电,再见。”说完挂了电话。
地儿看了看,地址里没有更低一级的域名了,就拿起跟Chrome通话的电话:“哎,Chrome,还在吧?……对,查出来了……恩,4.5.6.7……恩……恩……好……哎,没事没事……好,再见,替我跟IE问好啊,好长时间没见他了……好……好,再见……哎……好……好。”
步骤3.1根据IP地址访问服务器
挂掉了地儿的电话,Chrome拨通了4.5.6.7,这时的老板似乎有点等不及了。
很快,对方接通了电话。
神秘的对方四号:“您好,需要什么服务?”
Chrome:“你好,主页就好了。”
神秘的对方四号:“好的,我们注意到您是第一次访问我们页面,现在向您发送确认页面。”
Chrome:“……什么鬼?”
神秘的对方四号并没有理Chrome先生,它发给了Chrome先生一个HTML文档,Chrome把这个HTML文档解析成了彩色的网页,展示给了老板。
老板输入完用户名、密码还有验证码以后,点击了提交。
这一次Chrome不用像第一次那么麻烦了,不过他依然先打开了老板的hosts文件看了看,确定老板没有强制的网址跟IP的映射关系(就是某个网址一定要去某个IP访问),然后自己回忆了一下刚刚的操作,就直接拨通了4.5.6.7。
神秘的对方四号对Chrome先生说:“恭喜您登陆成功,现在对您发送一条cookie记录,这样您以后再访问我们网站的时候一块儿把这串cookie发过来,我就知道您以前登陆过我们网站,就不会再出现刚刚的登陆页面了,请注意接收。”
Chrome:”好……“
神秘的对方四号等Chrome保存好cookie记录之后,接着说:“现在为您跳转到主页,请注意查收。”
说完,就给Chrome发来了一个html文件。
Chrome照例解析这个html文件成网页给老板看。
我们假设Chrome浏览器是专门负责根据URL寻找并打开网页的人。
-----------
昨天,Chrome先生的老板给了他一个URL地址,并对他说:“去吧,Chrome!”
步骤0:识别URL
Chrome先生低头看了看老板给的URL,完整的URL是由协议(比如http,ftp)、域名(比如 http://www.baidu.com )、文件路径(比如/htm_data/20/1510/1441477.html这样的)和端口(比如:80)四个部分组成的,老板只给了域名 http://www.zhihu.com ,不过没关系。
“这就够了。”Chrome先生自信的一笑,走向了老板。
步骤1.查找本地hosts文件
“虽然老板已经给了我URL地址,但是网页(文件)是保存在服务器上的,要找到老板要的东西就要找到保存文件的服务器,要找到服务器就要先知道服务器的IP地址。”Chrome先生如是想。
Chrome从老板的抽屉里找出一个笔记本。
老板好奇的问:“Chrome,为什么每次我要你给我打开个网页你都要看看这个破本子,这到底是干什么的?”
Chrome:“hosts文件,用来保存域名以及域名对应的IP地址。”
Chrome打开一看,不出所料,里面空空如也,于是Chrome又把笔记本放回了原处。
老板好奇地问:”Chrome,为什么里面是空的?”
“因为你不会科学上网啊,把一个网站的域名写到这个文件里,写一个空格,后面再加上一个该网站可以用的服务器的IP地址,以后访问这个网站的话就会直接访问这个IP对应的服务器了。”
步骤2.1询问本地域名服务器
Chrome看了看手里的域名,“越高级的域名越靠后,必须要先找后面的域名,然后才能进一步的找到整个域名啊。”
Chrome用自己的手机拨了一个神秘的电话。
老板好奇的问:“Chrome,你在跟谁打电话?”
Chrome:“地儿,我一朋友,是个本地域名服务器,哎呀你不认识。”
对方很快接通了。
Chrome:”喂,地儿吗?哎对,是我,问你个事儿, www.baidu.com 这个网址你见过没?……什么?咱们这附近没人上过这个网站?昂……你给我查查?哎……行行行……哎好嘞,没事,不着急啊。“
说完Chrome并没有挂掉电话,依旧把手机放在耳朵边上听着,还抽空跟老板解释了一句:“根儿也不知道。”
老板好奇的问:“你挂了电话让他打回来不就行了?”
Chrome:“就不。”
步骤2.2询问根域名服务器
话分两头,这边的本地域名服务器又拿起一部手机,打开了一个叫“找根儿”的APP。
这个找根儿APP是干嘛的呢?顾名思义,就是用来找根域名服务器的了,要知道全世界有数百个根域名服务器,简而言之,“找根儿”可以帮你找到通话质量最好的那个。
我们还是叫他地儿吧。
地儿:“喂,您好,麻烦帮我查一下com这个顶级域名的域名服务器的IP地址。”
神秘的对方一号:“好的,您要查的IP地址是:2.3.4.5,感谢您的来电,再见。”说完挂了电话。
地儿又给2.3.4.5播了个电话:“喂,您好,我想查一下你们那个zhihu的二级域名的域名服务器地址。”
神秘的对方二号:“好的,您要查的IP地址是:3.4.5.6,感谢您的来电,再见。”说完挂了电话。
地儿又不厌其烦的给3.4.5.6拨了个电话:“喂,您好,我想查一下你们那个wwwl的三级域名的域名服务器地址。”
神秘的对方三号:“好的,你要查的IP地址是:4.5.6.7,感谢您的来电,再见。”说完挂了电话。
地儿看了看,地址里没有更低一级的域名了,就拿起跟Chrome通话的电话:“哎,Chrome,还在吧?……对,查出来了……恩,4.5.6.7……恩……恩……好……哎,没事没事……好,再见,替我跟IE问好啊,好长时间没见他了……好……好,再见……哎……好……好。”
步骤3.1根据IP地址访问服务器
挂掉了地儿的电话,Chrome拨通了4.5.6.7,这时的老板似乎有点等不及了。
很快,对方接通了电话。
神秘的对方四号:“您好,需要什么服务?”
Chrome:“你好,主页就好了。”
神秘的对方四号:“好的,我们注意到您是第一次访问我们页面,现在向您发送确认页面。”
Chrome:“……什么鬼?”
神秘的对方四号并没有理Chrome先生,它发给了Chrome先生一个HTML文档,Chrome把这个HTML文档解析成了彩色的网页,展示给了老板。
老板输入完用户名、密码还有验证码以后,点击了提交。
这一次Chrome不用像第一次那么麻烦了,不过他依然先打开了老板的hosts文件看了看,确定老板没有强制的网址跟IP的映射关系(就是某个网址一定要去某个IP访问),然后自己回忆了一下刚刚的操作,就直接拨通了4.5.6.7。
神秘的对方四号对Chrome先生说:“恭喜您登陆成功,现在对您发送一条cookie记录,这样您以后再访问我们网站的时候一块儿把这串cookie发过来,我就知道您以前登陆过我们网站,就不会再出现刚刚的登陆页面了,请注意接收。”
Chrome:”好……“
神秘的对方四号等Chrome保存好cookie记录之后,接着说:“现在为您跳转到主页,请注意查收。”
说完,就给Chrome发来了一个html文件。
Chrome照例解析这个html文件成网页给老板看。
Chrome:“没事我先撤了哈。”
转自知乎https://www.zhihu.com/question/34873227/answer/69726883 一骑讨