第 15 章? 网络
15.1? 连网
计算机网络(computer network): 为了通信和共享资源而连接一起的一组计算设备.
无线连接(wireless): 没有物理电线的网络连接.
节点(主机)( node (host): 网络中任何可寻址的设备.
数据传输率( 带宽)( data transfer rate (bandwidth)): 数据从网络中的一个地点传输到另一个地点的速率.
协议(protocol): 定义如何在网络上格式化和处理数据的一组规则.
客户 / 服务器模型(client/servermodel): 客户发出对服务器的请求, 服务器作出响应的分布式方法.
文件服务器(file server): 专用于为网络用户存储和管理文件的计算机.
web 服务器(Web server): 专用于响应网页请求的计算机.
15.1.1? 网络的类型
拓扑: 管理 LAN 的各种配置
局域网(Local-Area Network, LAN): 连接较小地理范围内的少量计算机的网络.
环形拓扑(ring topology): 所有节点连接成封闭环的 LAN 配置.
星形拓扑( star topology): 由中心节点控制所有消息传输的 LAN 配置.
总线拓扑(bus topology): 所有节点共享条通 信线的 LAN 配置.
以太网(Ethernet): 基于总线拓扑的局域网业界标准.
广域网(Wide- Area Network, WAN): 连接两个或多个局域网的网络.
网际互连: 网络之间的通信
网关(gateway): 处理它的 LAN 和其他网络之间通信的节点.
Internet: 遍布地球的广域网.
城域网(Metropolitan-Area Network, MAN): 为大城市开发的网络基础设施.
15.1.2?Internet 连接
Internet 骨干网(ntemet Backbone ): 承载 Inermet 通信的一组高速网络.
Internet 服务提供商(Internet Service Provider, ISP): 提供 Iternet 访问的公司.
把家用计算机连接到 Internet 的方法最常用的三种如下
1. 电话调制解调器(phone modem): 把计算机数据转换成模拟音频信号, 然后再把模拟音频信号转换回计算机数据的设备.
缺陷: 这种方法的数据传输率被限制在模拟语音通信的数据传输率, 通常最多每秒 64KB
2. 数字用户线路(Digital Subscriber Line,DSL): 用常规电话线传输数字信号的 Internet 连接方式
缺陷: 由于数字信号在两点间传输的过程中会减弱, 所以要使用 DSL 技术, 你家不能离电话公司的核心办公室太远
3. 线缆调制解调器(cable modem): 使用家庭的有线电视网络进行计算机网络通信的设备
宽带: 提供的数据传输率大于 128Kbps 的网络技术
DSL 连接和线缆调制解调器都属于宽带连接. 根据位置和访问是否通过卫星, 电话线, 视频电缆或光纤, 宽带传输速度的范围从 384Kbps 到 50Mbps 或更高.
下载: 在家用计算机上接收 Internet 上的信息
上载: 从家用计算机给 Internet 上的目标机器发送数据
由于下载的数据通信量远远大于上载的数据量, 所以许多 DSL 和线缆调制解调器的提供商提供的下载速度比上载速度快
15.1.3? 包交换
包(packet): 在网络上传输的数据单位.
包交换(packet switching): 把包单独发送到目的地然后再组装起来的网络通信技术.
路由器(router): 指导包在网络上向最终目的地传输的网络设备.
中继器(repeater): 在较长的通信线路上加强和传播信号的网络设备.
15.2? 开放式系统与协议
15.2.1? 开放式系统
专有系统(proprietarysystem): 使用特定销售商的私有技术的系统.
互通性(interoperability): 多台机器上的来自多个销售商的软件和硬件互相通信的能力.
开放式系统(Opensystem): 以网络体系结构的通用模型为基础并且伴有一组协议的系统.
开放系统互连参考模型( Open Systems Interconnection ( OSI) reference model): 为了便于建立通信标准而对网络交互进行的 7 层逻辑划分.
之所以存在今天我们所熟知的联网技术, 都归功于开放式系统的技术和方法(如 OSI 参考模型)
15.2.2? 网络协议
网络协议参照 OSI 参考模型的基本概念也进行了分层, 以便 OSI 参考模型中的每一层都能依靠自己的基础协议, 如图 15-6 所示. 这种分层有时叫作协议栈 .
优点: 采用分层的方法可以在不舍弃低层基础结构的前提下开发新的协议. 此外, 这样还最小化了新网络协议对网络处理其他方面的影响.
有时, 同一层中的协议提供与该层其他协议同样的服务, 但是采用的方式却不同.
协议栈(protocol stack): 彼此依托的协议分层
这些协议的重要之处是, 它们提供了一种在连网的计算机间进行交互的标准方式.
图 15-6 中的最低两层构成了 Internet 通信的基础 . 其他协议有时叫作高层协议 , 负责处理特定类型的网络通信. 这些层本质上是 OSI 参考模型的特定实现 , 以各种方式对应于该模型中的分层.
15.2.3?TCP/IP
传输控制协议(Trasmission Control Protocol, TCP): 把消息分割成包, 在目的地把包重新组装成消息, 并负责处理错误的网络协议.
网际协议(InternetProtocol,IP): 网络协议, 处理包通过互相连接的网络传递到最终目的地的路由选择.
TCP/IP: 一组支持低层网络通信的协议和程序.(这种写法反映了 TCP 是在 IP 的基础之上的.)
用户数据报协议( User Datagram Protocol, UDP): 牺牲一定可靠性实现较高传输速率的网络协议, 是 TCP 的替代者.(UDP 是 TCP/IP 协议组的一部分)
ping: 用于测试一台特定的网络计算机是否是活动的以及是否可到达的程序.
跟踪路由程序(rceroute): 用于展示包在到达目的节点的过程中经过的路线的程序.
IP 软件处理的是包通过互相连接的网络传递到最终目的地的路由选择. TCP 软件负责消息分割成包, 交给 IP 软件传递, 目的地机器上的 TCP 则负责把包排序, 重新组合成消息. TCP 软件还要处理所有发生的错误, 如一个包永远不能到达目的地.
UDP 和 TCP 的主要不同之处在于 TCP 牺牲了一定的性能, 提供了高度可靠性, 而 UDP 更快, 但不那么可靠.
15.2.4? 高层协议
其他协议都是在 TCP/IP 协议组建立的基础之上构建的. 一些关键的高层协议如下:
简单邮件传输协议(SMTP): 用于指定电子邮件的传输方式的协议.
文件传输协议(FTP): 允许一台计算机上的用户把文件传到另 - 台机器或从另一台机器传回文件的协议.
telnet: 用于从远程计算机登录一个计算机系统的协议. 如果你在一台特定的计算机上拥有允许 telnet 连接的账户, 那么就可以运行采用 telnet 协议的程序, 连接并登录到这台机器, 就像你坐在这台机器面前一样.
超文本传输协议 (HTTP): 定义 WWW 文档交换的协议, WWW 文档通常是用超文本标记语言(html) 写成的.
以上这些协议都是构建在 TCP 之上的. 还有些高层协议构建在 UDP 之上, 主要是为了利用它提供的速度. 不过, 由于 UDP 的可靠性不如 TCP, 所以 UDP 没有 TCP 那么流行.
有些高层协议具有特定的端口号. 端口 是对应于特定高层协议的数字标号. 服务器和路由器利用端口号控制和处理网络通信. 图 15-7 列出了常用的协议和它们的端口. 有些协议 (如 HTTP) 具有默认的端口, 但也可以使用其他端口.
端口(port): 特定高层协议对应的数字标号.
15.2.5?MIME 类型
与网络协议和标准化相关的概念是文件的 MIME 类型 .
应用程序根据文档的 MIME 类型可以决定如何处理其中的数据. 例如, 用于阅读电子邮件的程序会分析电子邮件附件的 MIME 类型, 以决定如何显示它(如果可以的话).
许多常用应用程序创建的文档和来自特定领域的数据都有 MIME 类型. 例如, 化学家和化学工程师为各种与化学相关的数据类型定义了一大套 MIME 类型.
MIME 类型(MIMEtype): 定义电子邮件附件或网站文件的格式的标准.
15.2.6? 防火墙
防火墙(firewall): 一台网关机器, 它的软件通过过滤网络通信来保护网络.(防火墙是一个低级别的网络通信机制.)
访问控制策略(access control policy): 一个组织建立的一组规则, 规定了接受和拒绝什么类型的网络通信.
防火墙的主要作用是保护 (从某种程度上讲是隐藏) 驻留在它 "后面" 的一组管理较松懈的机器.
组织的系统管理员为他们的 LAN 设置防火墙, 接受 "可接受" 类型的通信, 拒绝其他类型的通信. 实现这一策略的方法有很多, 最直接了当的方法是拒绝特定端口的通信. 例如, 可以建立防火墙, 通过拒绝由端口 23 进入的所有通信, 能够阻止 LAN 之外的用户创建对 LAN 之内机器的 telnet 连接.
更复杂的防火墙系统能维护有关经过它们的通信的状态的内部信息或数据本身的内容. 防火墙能够决定的通信状态越多, 就越能够保护它的用户. 当然, 这种安全性是有代价的. 有些复杂的防火墙会给网络通信带来明显的延迟.
15.3? 网络地址
当你通过一个计算机网络进行通信时, 最终都是在与世界上某处的另一台计算机通信. 标识特定的机器以建立通信是一种相当复杂的机制.
主机名(hostname): 由点号分隔的单词组构成的名字, 唯一标识了 Internet 上的机器; 每个主机名对应一个特定 IP 地址.
IP 地址(IP adress): 由点号分隔的四个数值构成的地址, 唯一表示了 Internet 上的机器.
主机名 是 Intermnet 上的计算机的唯一标识. 主机名通常是易读懂的单词, 中间由点号分隔.
例如:
- matisse.csc.villanova.edu
- condor.develocorp.com
在处理电子邮件地址和站点时, 我们倾向于使用主机名, 因为它们容易理解和记忆. 但是, 网络软件却要把主机名翻译成对应的 IP 地址 , 这样更便于计算机使用. IP 地址通常是 4 个十进制数, 中间由点号分隔.
例如:
- 205.39.155.18
- 193.133.20.4
一种形式的 IP 地址长为 32 位, 称为 IP4.IP 地址中的每个数对应 IP 地址中的一个字节. 由于一个字节 (8 位) 可以表示 256 种事物, 所以 IP 地址中的数字的范围是 0 到 255.
IPv4 协议的一个主要问题是, 它限定了可以唯一识别的电脑的数量 ( 40 亿左右). 随着互联网使用的增加, 特别是随着移动计算设备(如智能手机和平板电脑) 的普及, 4 字节独特 IP 地址的供应迅速减少. 2011 年初, IPv4 地址的最后一个块也被分配了出去.
IPv6 协议是 IPv4 协议的继承者, 与之前使用的 32 位 (使用 4 个组别的 8 位) 的 IPv4 协议不同, IPv6 地址使用 8 个组别的 16 位共 128 位地址. IPv6 地址通常写作十六进制数字来保持长度可控, 比如:
FE80: 0000:0000:0000:0202:B3FF:FE1E:8329
除了提供更多的地址, IPv6 协议还提供几种改进网络通信管理的附加功能. IPv6 与 IPv4 寻址并行运作, 创造两个平行网络.
域名系统
主机名由计算机名加域名 构成. 例如, 在主机名
matisse.csc.villanova.edu
中, matisse 是计算机名, csc.villanovn.edu 是域名. 域名由两个或多个部分组成, 它们说明了计算机所属的组织或组织的一个子集. 在这个例子中, matisse 是 Villnova 大学的计算机科学系的一台计算机.
域名(domain name): 主机名中说明特定的组织或分组的部分.
域名仅限于由特定组织控制的一组特定网络. 注意, 两家组织中的计算机可以重名, 因为从域名可以分辨出引用的是哪一台计算机.
域名中的最后一部分叫作顶级域名 (TLD). 图 15.10 列出了主要的顶级域名. 有些 TLD (图 I5-10 中带星号的)从 Itemet 建立伊始就存在了, 而其他的则相对较新.
ICANN 代表赋值名称与数字互联网公司, 是管理顶级域名 (ILD) 的国际权威.
顶级域名(Top-Level Domain, TLD): 域名中的最后一部分, 声明了组织的类型或所属国家
ICANN: 批准顶级域名的国际组织.
域名抢注(domain squating): 购买域名, 目的仅仅是为了高价卖给真正想使用它的人或组织.
域名系统(domain name system): 管理主机名解析的分布式系统.
域名服务器(domain name server): 把主机名翻译成 IP 地址的计算机.
15.4? 云计算
云计算(Cloud computing): 提供存储空间和互联网上其他资源的服务.
云计算是一个较大规模的概念. 除了电子邮件服务, 你也可以将文件, 图片, 视频等存储到网络服务器上而不是本地计算机上, 这样你不论在哪里都能够访问这些文件.
除此之外, 云服务往往也提供其他好处. 云服务可以备份你的数据, 减轻你相关的备份任务. 一些云服务将网页寄存功能作为其服务的一部分. 还有一些支持同步服务, 让类似浏览器书签的东西在多个设备上自动同步.
云计算成为提供个人服务的好办法的同时, 它也成为企业进行管理资源的流行方式, 这使得企业从可能产生的昂贵软硬件资源开销中解脱, 并同时节省了在本地管理这些相关数据资源的人工成本.
目前有几种不同类型的云服务:
公有云: 允许任何订阅用户访问;
私有云: 专门为一个特定的组或组织建立, 并限制在该组织团体内访问;
社区云: 在拥有相似需求的多个组织之间进行云共享;
混合云: 上述云服务类型的一些组合.
第 16 章? 万维网
16.1?Web 简介
万维网(World Wide Web, Web): 信息和用于访问信息的网络软件的基础设施.
Web 页(Web page): 包含或引用各种类型的数据的文档.
链接(link): 两个 Web 页之间的连接.
Web 站点(Website): 一组相关的 Web 页, 通常由同一个人或公司设计和控制.
Internet 使通信成为可能, 而 Web 则使通信变得更轻松, 更丰富, 更有趣.
Web 地址是统一资源定位符 (URL) 的核心部分, URL 唯一标识了存储在世界各处的 Web 页. 注意, URL 的一部分是存储信息的计算机的主机名.
Web 浏览器(Web browser): 获取并显示 Web 页的软件工具.
Web 服务器(Web server): 用于响应 Web 页请求的计算机.
统一资源定位符(Unifom Resoure Locator, URL): 说明 Web 地址的标准方式.
16.1.1? 搜索引擎
Web 搜索引擎是帮助你找到其他 Web 站点的站点.
大多数搜索引擎是用用户输人的关键字与作为站点索引的一组关键字进行比较. 有些搜索引擎几乎把每个 Web 页上的每个单词都作为索引存入数据库, 只是除去 a,an 和 the 这样的常用单词. 有些搜索引擎则只用 Web 页的部分内容作为索引, 如文档的标题和题名等. 有些索引技术区分大小写, 有些则不.
关键字搜索非常具有挑战性, 因为自然语言 (如英语) 本身具有二义性. 如果提供了足够多的关键字, 搜索引擎就能够正确地区分匹配站点的优先次序. 但在没有上下文的情况下, 基本的关键字匹配是很有限的.
有些搜索引擎执行基于概念的搜索, 即尝试判断所执行的搜索的上下文. 如果它们运行得很好, 返回的候选页会包含你要搜索的主题的相关内容, 无论这个页面中的单词是否与查询中的关键字完全匹配. 基本前提是分类, 即对比相近的单词. 例如, 在医学范畴内, 心脏这个词可能与动脉, 胆固醇和血这些词相近.
基于概念的搜索比关键字搜索复杂得多, 基于概念的搜索技术很不完善, 不过一旦有所改进, 这种技术的潜力不可限量.
16.1.2? 即时消息
即时消息( Instant Messaging, IM) 应用程序是最受欢迎的 Web 程序. 顾名思义, 使用这些程序, 你可以实时地给朋友或工作伙伴发送消息.
如果发送者和接收者同时运行了即时消息应用程序, 那么消息一到达就会立刻弹出来, 这样两个人就能够进行在线 "交谈". 现在领先的 IM 应用程序是 America Online (AOL) Instant Messenger ( AIM).
今天的 IM 应用程序非常复杂, 允许用户定制联系人列表, 设置默认的答复, 除了文本外, 还可以发送标准的图形或订制的图形. IM 模式已经成了许多 Web 用户的标准通信方法.
大多数 IM 应用程序采用专有的协议, 规定通过网络发送消息的格式和结构. AIM 的协议也是专有的, 但并不限于 AOL 用户才能使用, 这也是 AIM 如此受欢迎的原因.
即时消息虽然方便, 但却不安全. 通过各种 IM 协议发送的消息并没有加密, 可能会被网络通信途中的中间点截获. 未加密的电子邮件也同样不安全.
16.1.3? 博客
Weblog 简称为博客( blog), 是在网站定期发表文章的一种途径. 根据发表的作者, 主题和博客的性质, 发表的文章可以只是一段, 也可以是长篇大论, 能够与报纸或杂志上的文章相媲美.
一个网站可以完全被组织成一个博客, 也可以把博客作为一个站点的一部分, 该站点还可以有其他元素. 许多创建和发表博客的工具和在线服务都使新手能够容易地搭建并运行自己的站点.
从 20 世纪 90 年代末 Weblog 首次出现以来, 它已经得到了巨大的改进. 虽然我们仍然能看到许多博客发表的是作者自己的无稽之谈和无聊琐事, 但还是有许多博客为各种严肃话题提供了出路. 有些博客是某种特定问题的重要信息资源, 拥有很多追随者. 2004 年, Merriam- Webster Dictionary 宣布 "博客" 一词为该年度的重要用词.
有些博主自称是公民记者, 这就提出了一种新想法, 即他们的博客是其他媒体有效且有价值的信息源.
由于博客是在线发布系统, 所以它们对时事的反应比传统的印刷媒体快多了. 出于这种原因, 许多新闻记者都开辟了自己的博客, 以便辅助自己在传统媒体领域的工作.
16.1.4?cookie
cookie 是 Web 服务器存储在你的计算机硬盘上的一个小文本文件.
cookie 是另一种基于 Web 的技术, 对于用户而言, 它增强了 Web 的实用性. 站点可能会在用户的机器上存储个 cookie, 以捕捉之前这台机器和站点之间发生的交互.
cookie 中存储的信息段是名字 - 值对以及存储信息的站点的名字. 例如:
UserID KDFH547EH398DFJ www. goto.com
如这个例子所示, Web 站点可能会为每个访问它的计算机生成一个唯一的 ID 编号, 并将其存储在本地计算机上. 更复杂的 cookie 会存储计时信息, 如这台机器访问了站点多久, 浏览了哪些内容.
cookie 对于 Web 站点来说用途很多. 有些 Web 站点用 cookie 来确定有多少不同的访问者. 还有些 Web 站点用 cookie 存储用户的喜好, 以便为用户定制站点的交互. 购物车也是用 cookie 来实现的.
使用 cookie 的一个问题是人们通常会共用一台计算机来访问 Web. 由于 cookie 是基于连接到 Web 的计算机而不是基于个人的, 所以用 cookie 个人化站点的访问并不总是行得通.
关于 cookie 有些常见的误解. cookie 不是程序, 不会在你的计算机上执行任何操作. 它也不能收集有关你或你的计算机的个人信息. 这些是常见的误解. 不过, 由于种种原因, cookie 还没有被广泛接受.
16.2?HTML
超文本标记语言(HyperText Markup Language, HTML): 用于创建 Web 页的语言.
标记语言( markup language): 使用标记来注释文档中的信息的语言.
标记(tag): 标记语言中用于说明如何显示信息的语法元素.
HTML 文档是常规的文本文档, 用任何般的编辑器或字处理软件都可以创建它. 也有用于协助创建 Web 页的专用软件, 但这些工具最终生成的都是 HTML 文档. 当 Web 页被请求时, 在 Web 上传输的是这些 HTML 文档.
标记 都封装在尖括号中 (<...>). 像 HEAD,TITLE 和 BODY 这样的单词叫作元素 , 指定了标记的类型. 标记通常是成对出现的, 具有一个起始标记(如) 和对应的结束标记(如).HTML 不区分大小写, 因此等价于.
每个 HTML 文件都包括两部分, 即文档的头和文档主体. 文档头包含的是有关文档自身的信息, 如文档标题. 文档的主体存放的是要显示的信息.
整个 HTML 文档封装在标记和 中. 文档的头和主体是以类似的方式说明的. 标记和之间的文本将在页面显示时出现在 Web 浏览器的标题栏中.
浏览器将根据 HTML 文档中的标记决定如何显示 Web 页. 它会忽略 HTML 文档中的格式, 如回车符, 空格和空行. 文档中行的缩进只是为了便于人们阅读, 与它的最终显示方式无关. 浏览器会考虑浏览器窗口的宽度和高度. 在调整浏览器窗口的大小后, Web 页的内容会被重新格式化, 以适应新的窗口大小.
16.2.1? 基本的 HTML 格式
段落标记 (<p>...</p>) 说明了应该将其中的文本作为单独的段落处理. 在大多数浏览器中, 结束标记</P > 不是必需的, 不过为了清楚起见, 我们使用它. 浏览器通常会用新的一行开始新段落 , 而且段落前后还有空行, 以便与其前后的段落分隔开.
居中标记 (<CENTER>...</CENTER>) 说明其中的信息应该在浏览器窗口中居中显示.
元素 B,I 和 U 分别说明了封装的文本应该用粗体, 斜体显示或加下划线. 这些元素可以嵌套, 从而同时生成多种效果, 不过并非所有标记都能嵌套.
标记 < HR > 将在页面中插入一条水平线, 通常用于把 Web 页分割成几个部分.
我们通常需要显示项目列表. UL 元素表示无序列表, L1 元素表示一个列表项. 在 Student Dynamics 这个示例中, 标记 < UL>...</UL > 封装了三个列表项. 大多数浏览器都采用项目符号显示无序列表. 如果使用有序列表元素(OL), 那么列表项将被顺序编号. 无序列表和有序列表都可以嵌套, 从而创建列表分层. 无序嵌套列表的每一层使用的项 目符号都不同. 有序嵌套列表的每层都会重新开始编号.
定义文档标题的元素有几种. 在 HTML 中, 有 6 种预定的标题元素, 即 H1,H2,H3,H4,H5 和 H6. 例如, 封装在标记 < H3>...</H3 > 中的文本将被当作 3 级标题, 用比 4 级标题大, 比 2 级标题小的字号显示. 标题标记并非一定要用于设置标题文本, 任何想改变字体大小的地方都可以使用它们.
16.2.2? 图像与链接
属性(tribute): 标记中用于提供有关元素的额外信息的部分.
属性的形式如下:
??????????? 属性名 = 值
例如, 可以用 IMG 元素把图像嵌人 Web 页, IMG 元素的属性可以标识要显示的图像文件. 属性名是 SRC, 表示图像的来源. IMG 元素没有结束标记. 例如:
<IMG SRC = "myPicture.gif">
这个标记将把图像 myPicture.gif 插入 HTML 文档. IMG 和 SRC 之间至少要有一个空格.
在 HTML 中, 链接是用元素 A 声明的, A 表示锚( anchor). 该标记的属性 HREF 指定了目标文档的 URL. 例如:
- <A HREF?="http://duke.csc.villanova.edu/docs/">
- Documentation Central!
- </A>
这个标记将在屏幕上显示文本 Documentation Central!, 通常这个文本是蓝色的, 而且具有下划线. 当用户用鼠标点击这个链接时, 地址为 duke.csc.villanova.edu/docs 的 Web 页将被读取并显示在浏览器中, 代替当前的 Web 页.
注意, 文件名和 URL 都封装在引号中 .
16.2.3?HTML5
HTMLS: 精简标记系统和支持动态内容的最新 HTML 标准.
包括: 新标准简化了以前版本中对许多问题的处理. 有许多新的标记可用来表示内容, 包括:
- <section>
- -- 定义部分网页
- <header>
- -- 定义页面的页眉
- <footer>
- -- 定义页面的页脚
- <nav>
- -- 定义页面上的导航元素
- <article>
- -- 定义页面文章或主要内容
- <aside>
- -- 定义可能出现在侧边栏的次要内容
- <figure>
- -- 定义注解文章的图像
HTML5 的另一个令人兴奋的方面是它的动态变化的页面内容在用户不与页面进行交互的时候仍然可以被改变. 一些动态技术将在本章的后续部分讨论, 尽管随着时间的推移 HTML5 可能使其中的某些部分不再必要.
支持 HTML5 动态内容的一个例子是使用上下文菜单呈现下拉菜单的想法. 还有一个额外的属性 (异步) 可以被包含在一个标记中以表明显示的内容应该是通过异步加载的, 这将有助于提高网页加载的速度.
HTML5 中还包括几个接受来自表单的输入的新标记, 用来处理时间和日期的标记, 以及用于范围, 邮件地址和 URL 的表单域的标记.
16.3? 交互式网页
为满足用户强烈要求动态的 Web 的请求, 新的技术产生了. 选择其中两种看看 --Java 小程序和 Java 服务器页.
16.3.1?Java 小程序
Java 小程序(Java applet): 为嵌入 HTML 文档而设计的程序, 能够通过 Web 传输, 在浏览器中执行.
Java 小程序是用 APPLET 标记嵌人 HTML 文档的. 例如:
- <APPLET?code="MyApplet.class" width=250 height=160>
- </APPLET>
当 Web 用户引用了包含这个标记的页面时, 小程序 MyApplet.class 将随其他文本, 图像等页面包含的数据被一起发送. 浏览器知道如何处理每种类型的数据: 它将正确地格式化文本, 根据需要显示图像. 对于小程序, 浏览器内置有能够执行小程序的解释器, 使得用户能够与之进行交互. Web. 上有成千上万个 Java 小程序, 大多数浏览器都能够执行它们.
Java 小程序给客户的机器增加了负担. 也就是说, Web 用户把这些程序带到了自己的机器上, 在此执行它们. 想起来有些可怕, 当你正在网上冲浪的时候, 突然某人的程序在你的计算机上运行起来. 除非 Java 小程序只做自己分内的事情, 否则这样会带来问题. Java 语言具有仔细规划的安全模式. 例如, Java 小程序不能访问任何本地文件, 也不能修改系统设置.
客户的计算机也许能胜任运行小程序的工作, 也许不能, 这是由小程序的特性决定的. 由于这种原因以及小程序是通过网络传输的, 所以它们一般都比较小. 虽然适用于某些情况, 但 Java 小程序不能完全满足 Web 用户的交互需求.
16.3.2?Java 服务器页
Java 服务器页(Java ServerPage, JSP) 是嵌入了 JSP 小脚本的 Web 页. 所谓小脚本, 就是与常规的 HTML 内容混合在一起的 一小段可执行代码. 虽然与 Java 不完全一样, 但 JSP 代码很像一般的 .
JSP 小脚本(JSP scriptlet): 嵌在 HTML 文档中用于给 Web 页提供动态内容的代码片段.
JSP 小脚本封装在特殊标记 <% 和 %> 之间. 预定义的特殊对象可以简化某些处理. 例如, 可以用对象 out 生成输出, 该输出将被融合到 Web 页中小脚本出现的地方. 下面的小脚本将在 H3 的起始标记和结束标记之间生成短语 hellothere.
- <H3>
- <% out.println ( "he11o there"); %>
- </H3>
这个例子的结果等价于下面的代码:
<H3>hello there</H3>
不过可以认为 JSP 小脚本具有完整程序设计语言的强大功能. 我们几乎可以利用常规 Java 程序的各个方面, 如变量, 条件(从句), 循环和对象. 具备了这种处理能力, JSP 页就可以进行重要的决策, 生成真正动态的结果.
JSP 是在 Web 页驻留的服务器上运行的. 服务器能够在把 Web 页发送给用户之前动态地决定它的内容. 当 Web 页到达你的计算机时, 所有处理都已经完成, 生成了 (动态创建的) 静态的 Web 页.
JSP 尤其适合协调 Web 页和底层数据库之间的交互.
16.4?xml
HTML 是固定的, 也就是说, HTML 有预定义的一套标记, 每个标记具有自己的语义 (含义).HTML 指定了如何格式化 Web 页中的信息, 但是没有说明这些信息表示什么. 例如, HTML 会说明段文本的格式是标题, 但不会说明这条标题描述的是什么. HTML 标记不能描述文档的真正内容. 可扩展标记语言(xml) 允许文档的创建者定义自己的标记集合, 从而描述文档的内容.
xml 是一种元语言. 单词 metalanguage (元语言)是由单词 language (语言)加前缀 meta 构成的, meta 的意思是 "在...... 之外的" 或 "更复杂的". 元语言通过使我们精确地运用常规语言而超出常规语言, 是谈论或定义其他语言的语言, 就像描述英语规则的英语语法书.
可扩展标记语言(eXtensible Markup Language, xml): 允许用户描述文档内容的语言.
元语言(metalanguage): 用于定义其他语言的语言.
Tim Berners-Lee 使用称作标准通用标记语言 (SGML) 的元语言来定义 HTML.xml 是 SGML 的简化版本, 用于定义其他标记语言. xml 把 Web 带入了一个新的发展方向. 不过 xml 并没有取代 HTML. 而是使它更丰富.
与 HTML 一样, xml 文档也是由标记数据构成的. 不过在编写 xml 文档时, 不必拘泥于预定义的标记集合, 因为根本不存在这样的集合. 你可以创建任何描述文档中数据所必需的标记. xml 文档的重点不在于如何格式化数据, 而在于数据是什么.
文档类型定义(Document Type Definition, DTD): xml 文档结构的规约.
特定 xml 文档的结构是由它对应的 DTD 文档描述的. DTD 文档的内容不只是定义标记, 还说明它们是如何嵌套的.
这组标记中唯具有 属性的是 price 标记. DTD 文档的最后 行说明了 price 标记具有一个属性 currency, 而且是必需的.
xml 提供了组织数据的标准格式, 与其他特殊类型的输出无关. 一 种相关的技术叫作可扩展样式表语言( XSL), 可以把 xml 文档转换成适用于特定用户的格式. 例如, 可以定义一个 XSL 文档, 把一个 xml 文档转换成 HTML 文档, 以便能在 Web 上看到该文档. 还可以定义另一个 XSL 文档, 把同一个 xml 文档转换成 Microsoft Word 文档, 或转换成适用于移动电话的格式, 甚至可以转换成语音合成器使用的格式.
可扩展样式表语言( eXtensible Stylesheet Language, XSL): 定义 xml 文档到其他输出格式之间转换的语言.
用 xml 规定的语言还有一个方便的特征, 即用这种语言编写的文档可以轻松地自动生成. 有种软件系统 (通常具有底层数据库) 可以用来生成大量易于在线传输和分析的数据. 一旦生成了, 这些数据就能被转换成最适合每个用户浏览的格式.
有些组织为特定的主题开发了专用的 xml 语言. 例如, 化学家和化学工程师定义了化学标记语言 ( CML) 以标准化分子数据的格式. CML 包含大量有关化学方面的标记, 给化学专业人员提供了共享和分析数据的通用格式.
记住, xml 是标记规约语言 ,xml 文件 则是数据 . 除非你运行显示 xml 文件的程序(如浏览器), 或者运行用它们进行操作的程序(如把数据转换成另一种格式的转换器或读取数据的数据库), 或者运行修改它们的程序(如编辑器), 否则什么都不会发生. xml 和相关技术为信息管理和以各种方式在 Web 上有效地进行信息通信提供了强有力的机制. 随着这些技术的发展, 利用它们的新机会将不断出现.
16.5? 社交网络
社交网络(social network): 允许拥有共同兴趣的人们进行交流互动的在线服务.
来源: http://www.bubuko.com/infodetail-3280488.html