深入理解计算机系统 第十一章

网络应 用都是 基于客 户端- 服务器 模型的 。采 用这个 模型, 一个应 用是由 一个服务器进 程和一 个或者 多个客 户端进 程组成 。服 务器 管理某 种资源 ,并 且通过 操作这 种资源来 为它的 客户端 提供某 种服务 。

客户端 -服务 器模型 中的基 本操作 是事务 (transaction) (见图 11-1)。 一个 客户端 -服务器事 务由以 下四步 组成。

1) 当一 个客户 端需要 服务时 ,它向 服务器 发送一 个请求 ,发 起一 个事务 。例如 ,当Web 浏览 器需要 一个文 件时, 它就发 送一个 请求给 Web 服 务器。

2) 服务器 收到请 求后, 解释它 ,并 以适当 的方式 操作它 的资源 。例如 ,当 Web 服务器收到 浏览器 发出的 请求后 ,它 就读一 个磁盘 文件。

3) 服 务器给 客户端 发送一 个响应 ,并等 待下一 个请求 。例 如, Web 服 务器将 文件发送回客 户端。

4) 客户 端收到 响应并 处理它 。例如 ,当 Web 浏览 器收到 来自服 务器的 一页后 ,就在屏幕 上显示 此页。

对主 机而言 ,网 络只是 又一种 I/O 设备 ,是 数据源 和数据 接收方。一 个插到 I/O 总线 扩展槽 的适配 器提供 了到网 络的物 理接口 。从 网络上 接收到 的数据从适配 器经过 I/O 和 内存总 线复制 到内存 ,通常 是通过 DMA 传送。 相似地 ,数据 也能从内存 复制到 网络。

套接 字接口

套接 字接口 (socket interface) 是一组 函数, 它们和 Unix I/O 函数结 合起来 ,用 以创建网 络应用 。大 多数现 代系统 上都实 现套接 字接口 ,包括 所有的 Unix 变种、 Windows 和Macintosh 系统 。


套接字接口函数使用详见书中内容

Web 服务器

Web 客户端 和服务 器之间 的交互 用的是 一个基 于文本 的应用 级协议 ,叫做 HTTP超 文本传 输协议 。 HTTP 是一 个简单 的协议 。一个 Web客户端 (即浏 览器) 打开 一个到 服务器 的因特 网连接 ,并且 请求某 些内容 。服 务器响 应所请求 的内容 ,然 后关闭 连接。 浏览器 读取这 些内容 ,并 把它显 示在屏 幕上。

Web 服务 器以两 种不同 的方式 向客户 端提供 内容:

取一 个磁盘 文件, 并将它 的内容 返回给 客户端 。磁 盘文件 称为静 态内容 (static con¬tent), 而返 回文件 给客户 端的过 程称为 服务静 态内容 (serving static content)

运行一 个可执 行文件 ,并 将它 的输出 返回给 客户端 。运 行时可 执行文 件产生 的输出称为动 态内容 (dynamic content), 而运行 程序并 返回它 的输出 到客户 端的过 程称为服务动 态内容 (serving dynamic content) 。

你可能感兴趣的:(深入理解计算机系统 第十一章)