互联网是如何运转的?
作者:Jonathan Lane 时间:2009-10-30 18:44:00
序言
偶尔你们会有机会了解一件事情的来龙去脉和其中的内幕,今天你就很幸运,因为我将带你领略当今最热门,同时也可能是你已经熟悉了的技术:万维网。
本篇文章讲述万维网的基本技术,包括:
超文本标记语言(HTML)
超文本传输协议(HTTP)
域名解析系统(DNS)
Web服务器和Web浏览器
静态和动态内容
以上这些内容都是一些最基本的知识,尽管它们对你构建一个更好的Web站点没有太大帮助,但却有助于你使用专业的语言向客户和其他人讲述Web。正 如电影《音乐之声》里那个睿智的保姆所说的:“当我们学习阅读时,从ABC开始;而当学习唱歌时,从Do Re Mi开始”。在本篇文章中,我将讲述计算机是如何使用HTTP和TCP/IP协议在互联网上通信的,然后再讲述创建网页需要的各种不同语言。本章的内容如 下:
计算机如何通过互联网通信?
剖析请求/响应周期
内容的类型
纯文本
Web标准
* 页
需要其它程序或插件的格式
静态网站与 * 站的比较
总结
练习题
计算机如何通过互联网通信?
值得庆幸的是,我们使计算机易于使用。在万维网上,绝大多数网页都是使用同一种语言,即HTML(超文本标记语言)编写的,并且使用一种通用的协 议,即HTTP(超文本传输协议)进行传输的。HTTP是常用的互联网规范,它允许一台Window计算机和正在运行着最新版本Linux操作系统的计算 机实现无障碍的通信。通过使用Web浏览器(它是一种解释HTTP,并将HTML渲染为人类可读格式的软件),你就可以在任意地点、任意设备上(包括手 机、PDA、游戏机等),阅读在任意计算机上以HTML创作的网页。
尽管编写网页的语言相同,但接入互联网的各种设备要能和网络相互通信,却需要有一些规则。这和在教室里学习,问问题要举手的规矩一样,HTTP为互联网确立了这些基本规则。由于有了HTTP,一台客户计算机(如你的计算机)就知道,它就是那台向服务器发出某个网页访问请求的计算机。服务器就是存放Web站点的计算机。当你在浏览器中键入一个网址,服务器就会收到你的请求,找到你想访问的网页,然后将该网页发回到你的计算机,这时网页就会在你的浏览器上显示出来了。
剖析请求/响应周期
以上我已讲述了使计算机能在互联网上通信所需的几个部分,现在我再详细谈谈HTTP的请求/响应周期。为能更有效地掌握一些重要的概念,请遵照以下步骤动手操作一下。
每一次请求/响应,都从在Web浏览器的地址栏上键入统一资源定位符(URL)开始,比如 http://dev.opera.com。请打开浏览器,键入一个URL。
也许你们还不知道,Web浏览器实际上并不是使用URL向服务器请求Web站点的,而是使用互联网协议或称IP地址(它们和电话号码或邮政编码相似,是用来识别服务器的)。举例来说,http://dev.opera.com这个站点的IP地址就是213.236.208.98。
请打开一个新的浏览器标签页或窗口,键入 http://www.apple.com,然后按回车键;然后再键入 http://17.149.160.10/ 并按回车键,你会发现到的是同一个Web站点。试着在地址栏键入 http://213.236.208.98 并按回车键,这其实也是指向一个服务器地址,但你的浏览器上会显示“禁止访问”错误信息(错误403),这是因为你未被允许访问这个服务器的真实根目录。
http://www.apple.com 基本上等于是 http://17.149.160.10/ 的别名,但为什么要使用这个别名呢?这是因为人们更容易记住文字,而不是一长串数字。将字母组成的域名解析为数字表示的IP地址,是通过域名解析系统(DNS)实现的。DNS实际上是所有连接到互联网上计算机的自动目录。当你在浏览器的地址栏键入 http://dev.opera.com 并按回车键后,该网址就被发送到一个域名服务器上,由这个服务器去找到相对应的IP地址。由于连接到互联网的计算机数量非常庞大,不是每一台DNS服务器都有一个所有在线机器的列表,因此就有这样一个系统,确保你的请求可以发往正确的服务器,以完成你的请求。
因此DNS系统就查找 www.opera.com 站点,找到所请求页面的IP地址17.149.160.10,然后把这个IP地址发送回你的Web浏览器。
你的计算机向位于指定IP地址的计算机发出请求,等待得到响应。如果一切顺利的话,服务器会向客户端发出一条消息说“一切都正常”(见图1),然后将网页发送到客户端。这类消息被包含在HTTP 报头中。
图一: 在这种情况下,一切都正常,服务器传输回正确的网页。
如果出现了问题,例如你键入的URL不正确,则会传输回HTTP 错误信息,并显示在你的浏览器上,错误404“网页未找到”,就是你可能遇到的常见错误信息。
试着键入 http://dev.opera.com/joniscool.html,这个网页不存在,因此你的浏览器上就会显示服务器传输回的错误404信息。试 试再键入几个不同的Web站点上不存在的网页的网址, 你会发现传输回来的404错误页面各有不同。这是因为一些Web开发员只是让Web服务器传输回默认的错误页面,而另一些Web开发员则编写了自定义的错 误页面。这是一项高级技术,未包含在本课程的范围内,不过我们希望在即将发布的一篇文章中包含这一内容。
最后,说一下有关URL的事情,通常你键入的指向某个站点的第一个URL,在其末尾是没有真正的文件名的(如 http://www.mysite.com/),随后你访问的页面,在其URL的末尾有些有文件名,有些则没有。其实你访问的都是真正的文件,只是有时 Web开发员会通过在Web服务器上的设置,让服务器不在URL中显示文件名,这样做通常可以让人们更容易记住URL,使访问站点的用户获得更好的体验。 这是一项高级技术,也未包含在本课程的范围内。我们将在后面的文章中,讲述向服务器上载文件以及文件/文件夹目录结构的内容。