网页编程/网页和网页编程
什么是网络?被称为万维网,网络是在互联网上运行的应用程序或服务,互联网是基础设施(信息高速公路 - 传输机制)。互联网是全球互联的计算机网络,就像一个邮政系统,允许我们传递各种类型的邮件,而“网络”就是其中之一。最初,网络被设计为一个分布式的超文本文档共享系统。现在它已经发展成为一个用于分布式应用程序的平台。想想你使用的所有网络应用程序,例如谷歌搜索引擎、亚马逊网上商店和优酷。
网络基于简单的客户端-服务器模型。如图所示,客户端发送请求,服务器通过发送响应进行回复。
这是一个相当简单的模型,但我们可以用这个简单的模型构建强大的应用程序。
客户端和服务器都是软件实体,但都运行在硬件平台上。同一个硬件平台可以有多个软件实体运行。通常,Web 客户端是 Web 浏览器,例如 IE、Firefox 或 Chrome,Web 客户端是 Web 服务器,例如 Apache 和 IIS。当 Web 服务器使用其他 Web 服务器提供的 Web 服务时,Web 客户端和 Web 服务器之间的界限变得模糊,因此成为它们的客户端。
每个 Web 应用程序都有两个组件:客户端和服务器端。有一些编程框架(例如 Google App Engine)可用于将 Web 应用程序作为一个整体进行编写,方法是自动生成客户端。我们将手动管理这两个组件,以便更好地了解 Web 基础知识。
HTTP 代表超文本传输协议,它是网络上通信的约定标准(规则集)。它就像一种语言,任何能说这种语言的程序都可以作为 Web 的成员,成为客户端、服务器或两者兼而有之。每个在互联网上运行的服务都有自己的协议,例如IMAP 用于电子邮件检索,FTP 用于文件传输,以及SNMP 用于网络管理。
你无需精通 HTTP 协议即可创建 Web 应用程序。Web API(应用程序编程接口)允许我们通过抽象掉常见任务(管道)的细节来专注于应用程序逻辑。如图所示,API 提供了对详细机制的更高层抽象。
浏览器充当用户代理,代表人类用户发出 HTTP 请求。例如,当用户点击超链接时,浏览器会发送 HTTP 请求。请求可以是 GET 请求,例如获取新页面,也可以是 POST 请求,将(表单)数据发送到服务器。我们作为程序员,也可以通过调用客户端代码中(由浏览器提供的 API 部分)的函数来发送请求,该代码在浏览器中运行。
URL(统一资源定位符)也称为网络地址。Web 上的任何资源都由 URL 标识,URL 在全球范围内必须唯一。
下图显示了一个指向 Web 服务器上文件(资源)的 URL 示例
当 URL 发送到服务器时,服务器将映射 URL 的其余部分 -/~blu/helloworld.html- 到服务器文件系统中的路径/home/blu/public_html/helloworld.html。换句话说,任何在/~blu/之后的都会附加到/home/blu/用于在服务器上查找资源(文件)。
在前面的示例中,如果以下文本位于 helloworld.html 文件中,在地址栏中输入 URL 并按下回车键后,你将在浏览器窗口中看到该文本。
Hello World!
通过浏览器发送 URL 会触发对服务器的 GET 请求,以获取 URL 中标识的资源。对请求的响应是文件的原始内容。这是展示客户端-服务器模型如何工作的最简单示例。