前端篇--DNS
DNS 是一个分布式数据库,把域名翻译成 IP 地址,并将请求映射到远程服务器。换句话说,DNS 在互联网上记录 URL 和它对应的 IP 地址。所以像 http://www.google.com 这样的域名会被解析成一个 IP 地址197.251.230.45。顺便提一下,通过在浏览器地址栏里敲 IP 地址也能访问网站。
比起记一串数字来说,大多数人还是喜欢使用一个用户友好的地址如 http://www.google.com 这样的。DNS 数据库被安装在叫做 DNS 服务器的设备上。重要的一点是,DNS 服务器集群是分层级的,没有任何一个单一的 DNS 服务器中包含所有数据。如果一个 DNS 服务器里没有一个请求需要的域名,这个 DNS 服务器就会把请求转发给这个集群上更上一层节点的 DNS 服务器。最终,这个域名会在某个 DNS 服务器上的数据库里被发现,然后它对应的 IP 地址所代表的设备就会来接受这个请求。
你通过浏览器与互联网交互的一个典型实例是这样的:
1 在浏览器里输入类似 http://www.google.com 这样的地址。
2 你的请求被发送到你设备的网络接口。
3 这个请求的互联网之旅从搜索 http://www.google.com 的 IP 地址开始。在屏幕后面,http://www.google.com 代表了一个与某个远程服务器关联的 IP 地址的人类友好的名称。
4 远程服务器接受请求并将响应通过互联网发送到你的网络接口,并把它交给你的浏览器。
5 最终,浏览器把这个响应作为一个网页的形式呈现在你面前。
当浏览器发出请求的时候,它只是发送了一些文本到一个 IP 地址。因为客户端 (浏览器) 和服务器 (请求接收者) 之间有一个 HTTP 形式的约定,或者叫协议,这样服务器才可以分析请求,了解其组成并将响应发送回 web 浏览器。然后,web 浏览器将响应字符串处理成能理解的内容。浏览像 Facebook,Google 和 Twitter 这样的网站,就意味着一直在使用 HTTP。这些细节都被隐藏了,浏览器会自动处理好请求和响应