如何找网站(搜索或输入网址www)
你有过这样上网的经历吗?QQ一直登录收发消息很正常,但是网页就是打不开。况且你开网站,在公司打不开,回家也能正常访问。这里的原因是什么?本文将介绍我们网站访问的基本原理和过程。希望看完这篇文章,你能处理类似的情况。
电脑访问网站的流程大致如上图所示,DNS起着最重要的作用。DNS(英文:Domain Name System,缩写:DNS)是互联网的一项服务。作为一个将域名和IP地址相互映射的分布式数据库,它可以让人们更容易地访问互联网。这是什么意思?简单来说,当你访问一个网站时,你在浏览器上输入域名。例如,当你访问百度时,你进入www.baidu.com,但最终的网络原理是通过ip地址相互连接。所以你要先通过DNS服务器解析百度网站的域名地址并返回给你,然后根据IP地址访问相应的网站服务器。这是一个真实的网站访问过程。
事实上,我们可以通过IP地址访问网站。我们为什么要通过域名访问网站?有几个原因:
IP地址不大好记,且都是数字对用户不友好。通常情况下公司域名是不变的,有些域名直接可以反映公司名称并且好记,比如百度公司域名www.baidu.com。一个网站可能会对应好多不同的IP地址,我们通过域名访问只要记住这个域名地址就行了。
我们来看看用户访问网站时域名解析的流程。以访问百度网站www.baidu.com为例:
1.打开浏览器,输入百度网站的域名www.baidu.com。
2.首先浏览器搜索浏览器自身的DNS缓存,如果有www.baidu.com对应的有效条目,直接解析打开网页。
3.如果在步骤2中没有解决,浏览器将在计算机windows系统的DNS缓存中查找。如果是并且没有过期,则解析完成。
4.步骤3没有解决这个问题。浏览器会查找主机文件。在C:\\ Windows \\ System32 \\ drivers \\ etc下,如果有域名对应的IP地址,则解析完成。
5.一般不会添加步骤4中的hosts文件,所以浏览器发起调用DNS系统时,会向本地DNS服务器发起域名解析请求(比如114.114.114.114)。如果域名服务器找到对应于www.baidu.com的条目,则解析完成。
6.如果第五步解析不成功,则由设置的LDNS服务器代替浏览器发起迭代DNS解析请求,搜索各级DNS服务器系统,直到找到www.baidu.com对应的授权DNS服务器。
7.该授权DNS服务器是企业购买域名时用于管理域名解析的服务器。该授权服务器将具有对应于www.baidu.com的IP解析记录。然后,DNS服务器将对应于www.baidu.com的最终1P记录发送到LDNS。
8.LDNS从授权的DNS服务器www发送相应的IP解析记录。Baidu.com到客户端浏览器,它会缓存相应的域名和IP的解析,以便下次更快返回相同的解析请求记录。
9.客户端浏览器已经获取了www.baidu.com对应的IP地址,然后浏览器会请求获取该IP地址对应的网站服务器。网站服务器接收客户的请求并对其做出响应,将客户请求的内容返回给客户端浏览器。
10.这样访问网页的整个过程就完成了。
我们可以简单测试一下,你就明白访问网站的原理了。电脑打开dos窗口,也可以同时按键盘上的win和R键,然后输入cmd和enter调出。在dos窗口中使用ping命令来ping www.baidu.com。以下显示,访问百度网站正常。
可以看出你正在访问www.baidu.com,但是他回复给你的信息是以ip的形式给你的,这里回复给你的IP地址是112.80.248.75。这是百度网站真实服务器的IP,所以如果知道网站的真实IP地址,可以直接通过IP地址访问。
我们不会记住这个真实的IP地址,因为很难记住,所以我们会有一个更容易记住的URL来代替,我们需要DNS服务将URL解析成相应的IP。我们可以输出命令nslookup www.baidu.com。可以看到,我们设置的DNS 114.114.114.114帮我进行了解析服务,帮我解析了www.baidu.com的真实IP地址112.80.248.75和112.80.248.76,所以这两个IP地址是可以访问的。
接下来,让我们测试如果是错误的DNS地址会发生什么。我在这里设置了一个错误的DNS,设置DNS就是设置IP地址的地方。
我们来测试一下。让我们用ping命令ping www.baidu.com。可以看出ping请求找不到这个网址,他怀疑输入的名字有问题。呵呵,其实是我们的DNS设置有问题。
然后我们用nslookup进行测试。因为我们设置了一个错误的DNS地址,当他去请求这个DNS地址时,超时就超时了。
通过上面的介绍,另一种方法是手动将域名对应的IP地址添加到hosts文件中。这样的话,电脑会先查找hosts文件,它可以打开百度的网页,因为它已经再次解析了条目。
好的,这就是我们访问网站的方式。那么就很容易解释为什么有的时候有网站可以访问,有的时候不能。是因为有些你用DNS的网站可以解析到其他不能解析的网站。通常是运营商之间的互访造成的。比如你用移动宽带,必然会使用移动DNS,然后访问其他运营商的资源就会出现问题。据说我自己的电信资源会被自己的DNS访问,所以如果DNS解析不了,你可以试试别的DNS。