第十五章 网络
15.1 连网
- 计算机网络:为了通信和共享资源而连接在一起的一组计算设备。
电子邮件、即使消息和网页都依赖于底层计算机网络中发生的通信。计算机之间的连接通常是靠物理电线或电缆实现的。但是,有些连接使用无线电波或红外信号传导数据,这种连接是无线的。网络不是由物理连接定义的,而是由通信能力定义的。
- 节点(主机):网络中的任何可寻址的设备。
- 数据传输率(带宽):数据以网络中的地点传输到另一个地点的速率。
- 协议:定义如何在网络上格式化和处理数据的一组规则。
- 客户/服务器模型:客户发出对服务器的请求,服务器作出响应的分布式方法。
- 文件服务器:专用于为网络用户存储和管理文件的计算机。
- Web服务器:专用于响应网页请求的计算机。
15.1.1 网络的类型
- 局域网:连接较小地理范围内少量计算机网络。
- 环形拓扑:所有节点连接成封闭环的LAN配置。
- 星形拓扑:由中心节点控制所有消息传输的LAN配置。
- 总线拓扑:所有节点共享一条通信线的LAN配置。
- 以太网:基于总线拓扑的局域网业界标准。
- 广域网:连接两个或多个局域网的网络。
- 网关:处理它的LAN和其他网络之间通信的节点。
- Internet:遍布地球的广域网。
- 域域网:为大城市开发的网络基础设施。
15.1.2 Internet连接
- Internet骨干网:承载Internet通信的一组高速网络。
- Internet服务提供商(ISP):提供Internet访问的公司。
把家用计算机连接到Internet上的方法有很多,最常用的三种是使用电话调制解调器、数字用户线路(DSL)或线缆调制解调器。调制解调器是调节器和解调器的缩写。电话调制解调器把计算机数据转换成模拟音频信号,以便在电话线中传输,目的地调制解调器把模拟音频信号转换回计算机数据。这种方法的数据传输率被限制在模拟语音通信的数据传输率,通常最多每秒64KB。
数字用户线路就是使用常规的铜质电话线给电话公司的核心办公室传输数字数据。
线缆调节解调器是使用家庭的有线电视网络进行计算机网络通信的设备。
DSL连接和线缆调制解调器都属于宽带连接。
- 宽带:提供的数据传输率大于128Kbps的网络技术。
- 下载:在家用计算机上接收Internet上的信息。
- 上载:从家用计算机给Internet上的目标机器发送数据。
15.1 3 包交换
为了提高在共享线路上传输数据的有效性,消息被分割为大小固定、有编号的包。每个包将独立在网上传输,直到到达目的地,它们将在此被重新组合为原始的消息。这种方法叫作包交换。每个消息的包可以采用不同的路由线路到达最终的目的地。需要把包按照正确顺序排列之后再组合成原始消息。包在到达最终目的地之前,会在各种网络的计算机之间跳跃。用于指导包在网络之间传输的设备叫作路由器。
15.2.1 开放式系统
- 专有系统:使用特定销售商的私有技术的系统。
- 互通性:多台机器上的来自多个销售商的软件和硬件互相通信的能力。
- 开放式系统:以网络体系结构的通用模型为基础并且伴有一组协议的能力。
- 开放系统互连参考模型:为了便于建立通信标准而对网络交互进行的7层逻辑划分。
OSI参考模型
7 应用层(处理明确地与应用程序有关的问题)
6 表示层
5 会话层
4 传输层
3 网络层
2 数据链路层
1 物理层(处理的是与物理传输介质相关的基础的电子或机械问题)
15.2.2 网络协议
网络协议参考OSI参考模型的基本概念也进行了分层,以便OSI参考模型中的每一层都能依靠自己的基础协议,这种分层有时叫作协议栈。采用分层的方法可以在不舍弃低层基础结构的前提下开发新的协议。这样还最小化了新网络协议对网络处理其他方面的影响。有时,同一层的协议提供与该层其他协议同样的服务,但是采用的方式不同。协议在某种程度上只是一种共识,规定了特定的数据类型必须按照特定的方式格式化。
- 协议栈:彼此依托的协议分层。
15.2.3 TCP/IP
TCP是传输控制协议的缩写,IP是网际协议的缩写。它指的是一组协议和支持低层网络通信的工具程序。TCP是在IP的基础之上。IP软件处理的是包通过互相连接的网络传递到最终目的地的路由选择。TCP软件负责把消息分割成包,交给IP软件传递,目的地机器上的TCP则把包排序,重新组合成消息。TCP软件还要处理所有发生的错误。
UDP是用户数据报协议的缩写。它是TCP的替代品。注意,UDP是TCP/IP
协议组的一部分。由于TCP是高度可靠的,并且出于一定的历史原因,所以这套协议叫作TCP/IP协议。
- ping:用于测试一台特定的网络计算机是否活动的以及是否可到达的程序。
- 跟踪路由程序:用于展示包在到达目的节点的过程中经过的路线的程序。
15.2.4 高层协议
如:
- 简单邮件传输协议(SMTP)————用于指定电子邮件的传输方式的协议。
- 文件传输协议(FTP)————允许一台计算机上的用户把文件传到另一台机器或从另一台机器传回文件的协议。
- telnet:用于从远程计算机登录一个计算机系统的协议。
- 超文本传输协议(HTTP)————定义WWW文档交换的协议,WWW文档通常是用超文本标记语言(HTML)写成的。
这些协议都是构建在TCP之上的。还有高层协议构建在UDP之上,主要是为了利用它提供的速度。端口是对应于特定高层协议的数字标号。
15.2.5 MIME类型
与网络协议和标准化相关的概念是文件的MIME类型。MIME是多用途网际邮件扩充的缩写。
- MIME类型:定义电子邮件附件或网站文件的格式的标准。
15.2.6 防火墙
- 防火墙:一台网关机器,它的软件通过过滤网络通信来保护网络。
- 访问控制策略:一个组织建立的一组规则,规定了接受和拒绝什么类型的网络通信。
15.3 网络地址
- 主机名:由点号分隔的单词组构成的名字,唯一标识了Internet上的机器;每个主机名对应一个特定的IP地址。
- IP地址:由点号分隔的四个数值构成的地址,唯一表示了Internet上的机器。
一种形式的IP地址长为32位,称为IP4。IP地址中的数字范围是0到255。IPv4协议的一个主要问题是,它限定了可以唯一识别的电脑的数量(40亿左右)。
IPv6协议是IPv4协议的继承者,与之前使用的32位的IPv4协议不同,IPv6地址使用8个组别的16位共128位地址。IPv6地址通常写作十六进制数字来保持长度可控。
域名系统
域名由两个或多个部分组成,是指主机名中说明特定的组织或分组的部分。域名的最后一部分叫作顶级域名,声明了组织的类型或所属国家。
ICANN代表赋值名称与数字互联网公司,是管理顶级域名(TLD)的国际权威。
- 域名抢注:购买域名,目的仅仅是为了高价卖给真正想使用它的人或组织。
- 域名系统:管理主机名解析的分布式系统。
- 域名服务器:把主机名翻译成IP地址的计算机。
DNS是一种分布式数据库,没有一个组织负责更新主机名/IP映射。
15.4 云计算
通过云计算,你可以获得存储空间、设备自动同步以及访问Internet上的其他资源。
云计算是一个较大规模的概念。云服务往往也提供其他好处。云服务可以备份你的数据,还有一些支持同步服务,让类似浏览器书签的东西在多个设备上自动同步。云计算成为提供个人服务的好办法的同时,它也成为企业进行管理资源的流行方式。
目前有几种不同类型的云服务:
- 公有云:允许任何订阅用户访问;
- 私有云:专门为一个特定的组或组织建立,并限制在该组织团体内访问;
- 社区云:在拥有相似需求的多个组织之间进行云共享;
- 混合云:上述云服务类型的一些组合。
第十六章 万维网
16.1 Web简介
Internet作为早期通信几乎都是采用基于文本的电子邮件和基本的文件交换实现的。万维网是较于Internet相对较新的概念。万维网(Web)是信息和用于访问信息的网络软件的基础设施。Web页是包括或引用各种数据的文档,包括链接。链接是指两个Web页之间的连接。Web站点是指一组相关的web页,通常由同一个人或公司设计的。Web浏览器如firefox或Microsoft的Internet Explorer,是处理Web页的请求并达到它到达后将其显示出来的软件工具。用于响应Web请求的计算机叫作Web服务器。Web地址是统一资源定位符(URL)的核心部分,URL唯一标识了存储在世界各处的Web页。注意,URL的一部分是存储信息的计算机的主机名。
- 统一资源定位符:说明Web地址的标准方式。
16.1.1 搜索引擎
Web搜索引擎是帮助你找到其他Web站点的站点。通过输入关键字,说明你想找到的信息的类型,搜索引擎就会提供一个由可能满足要求的站点的列表。
大多数搜索引擎是用用户输入的关键字与作为站点索引的一组关键字进行比较。有些则是执行基于概念的搜索。基于概念的搜索比关键字搜索复杂的多,基于概念的搜索技术很不完善。
16.1.2 即时消息
即时消息应用程序是最受欢迎的Web程序。顾名思义,使用这些程序,你可以实时地给朋友或工作伙伴发送消息。现在领先的IM应用程序是American Online(AOL)Instant Messenger(AIM)。IM模式已经成了许多Web用户的标准通信方法。即时消息虽然方便,但却不安全。通过各种IM协议发送的消息并没有加密,可能会被网络通信途中的中间点截获。未加密的电子邮件也同样不安全。
16.1.3 博客
Weblog简称为博客(blog),是在网站定期发表文章的一种途径。一个网站可以完全被组织成一个博客,也可以把博客作为一个站点的一部分,该站点还可以有其他元素。
16.1.4 cookie
cookie是另一种基于Web的技术,对于用户而言,它增强了Web的实用性。cookie是Web服务器存储在你的计算机硬盘上的一个小文本文件。站点可能会在用户的机器上存储一个cookie,以捕捉之前这台机器和站点之间发生的交互。
cookie中存储的信息段是名字-值对以及存储信息的站点的名字。更复杂的cookie会存储计时信息。购物车也是用cookie来实现的。
使用cookied的一个问题是人们通常会共用一台计算机来访问Web。注意,cookie不是程序,不会在你的计算机上执行任何操作。它也不能收集有关你或你的计算机的个人信息。这些是常见的误解。
16.2 HTML
Web页是用于超文本标记语言(HTML)创建的。术语超文本指的是不像一本书那样线性地组织信息,而是嵌入其他信息的链接,根据需要可以从一个地方跳转到另一个地方。现在更精确的术语是超媒体,因为除了文本以外,我们还要处理很多其他类型的信息。
之所以叫作标记语言,是因为这种语言的主要元素都是采用插入文档的标记的形式,用于注释存储在该处的信息。
HTML文档是常规的文本文档,用任何一般的编辑器或字处理软件都可以创建它。也有用于协助创建Web页的专用软件,但这些工具最终生成的都是HTML文档。HTML的标记说明了信息片段的普通性质以及如何显示它。
标记都封装在尖括号中(<···>)。像HEAD、TITLE和BODY这样的单词叫作元素,指定了标记的类型。标记通常是成对出现的,具有一个起始标记(如<BODY>)和对应的结束标记(如</BODY>)。HTML不区分大小写,因此<body>等价于<BODY>。文档头包含的是有关文档自身的信息。文档的主体存放的是要显示的信息。整个HTML文档封装在标记<HTML>和</HTML>中。文档的头和主体是以类似的方式说明的。标记<TITLE>和</TITLE>之间的文本将在页面显示时出现在Web浏览器的标题栏中。文档中的行的缩进只是为了便于人们阅读,与它的最终显示方式无关。浏览器会考虑浏览器窗口的宽度和高度。在调整浏览器窗口的大小后,Web页的内容会被重新格式化,以适应新的窗口大小。
16.2.1 基本的HTML格式
段落标记(<P>···</P>)说明了应该将其中的文本作为单独的段落处理。在大多数浏览器中,结束标记</P>不是必需的。浏览器通常会用新的一行开始新段落,而且段落前后还有空行,以便与其前后的段落分隔开。
居中标记(<CENTER>···</CENTER>)说明其中的信息应该在浏览器中窗口中居中显示。
元素B、I、U分别说明了封装的文本应该用粗体、斜体显示或加下划线。
标记<HR>将在页面中插入一条水平线,通常用于把Web页分割成几个部分。
我们通常显示项目列表。UL元素表示无序列表,LI元素表示一个列表项。标记<UL>···</UL>封装了三个列表项。大多数浏览器都采用项目符号显示无序列表。如果使用有序列表元素(OL),那么列表项将被顺序编号。无序列表和有序列表都可以嵌套,从而创建列表分层。无序嵌套列表的每一层使用的项目符号都不同。有序嵌套列表的每一层都会重新开始编号。
16.2.2 图像与链接
许多标记都具有属性,说明了有关信息的额外细节或如何显示封装信息。
属性的形式如下:
属性名=值
IMG元素的属性可以标识要显示的图像文件。属性名是SRC,表示图像的来源。IMG元素没有结束标记。IMG和SRC之间至少要有一个空格。在HTML中,链接是用元素A声明的。该标记的属性HREF指定了目标文档中的URL。
16.2.3 HTML5
全新的第五代HTML标准版本发布,简称HTML5。
- HTML5:精简标记系统和支持动态内容的最新HTML标准。
新标准简化了以前版本中的对许多问题的处理。有许多新的标记可用于表示内容,包括:
- <section>————定义部分网页
- <header>————定义页面的页眉
- <footer>————定义页面的页脚
- <nav>————定义页面上的导航元素
- <article>————定义页面文章或主要内容
- <aside>————定义可能出现在侧边栏的次要内容
- <figure>————定义注解文章的图像
HTML5的另一个令人兴奋的方面是它的动态变化的页面内容在用户不与页面进行交互的时候仍然可以被改变。
HTML5中还包括几个接受来自表单的输入的新标记,用来处理时间和日期的标记,以及用于范围、邮件地址和URL的表单域的标记。
16.3 交互式网页
16.3.1 Java小程序
Java小程序是为嵌入HTML文档而设计的程序,能够通过Web传递给想运行它的用户。Java小程序是在浏览Web页的浏览器中运行的。
16.3.2 Java服务网页
Java服务网页(JSP)是嵌入了JSP小脚本的Web页。所谓小脚本,就是与常规的HTML内容混合在一起的一小段可执行代码。
- JSP小脚本:嵌在HTML文档中用于给Web页提供动态内容的代码片段。
JSP小脚本封装在特殊标记<%和%>之间。可以用对象out生成输出,该输出将被融合到Web页中的小脚本出现的地方。不过可以认为JSP小脚本具有完整程序设计语言的强大功能。JSP是在Web页驻留的服务器上运行的。JSP尤其适合协调Web页和底层数据库之间的交互。
16.4 XML
可扩展标记语言(XML)允许文档的创建者定义自己的标记集合,从而描述文档的内容。元语言通过使我们精确地运用常规语言而超出常规语言,是谈论或定义其他语言的语言,就像描述英语规则的英语语法书。
Tim Berners-Lee使用称作标准通用标记语言(SGML)的元语言来定义HTML。XML是SGML的简化版本,用于定义其他标记语言。XML把Web带入了一个新的发展方向。不过XML并没有取代HTML,而是使它更丰富。与HTML一样,XML文档也是由标记数据构成的。
- 文档类型定义:XML文档结构的规约。
在括号中单词book后面的星号(*)表示零个或多个。其他标记被指定为包含PCDATA,即解析过的字符数据,说明这些标记不能再进一步分解为其他标记。
这组标记中唯一具有属性的是price标记。DTD文档的最后一行说明了price标记具有一个属性currency,而且是必需的。
- 可扩展样式表语言:定义XML文档到其他输出格式之间转换的语言。
注意,XML是标记规约语言,XML文件则是数据。
16.5 社交网络
- 社交网络:允许拥有共同兴趣的人们进行交流互动的在线服务。
用户分为两大类:内部用户,参与者都在一个封闭的或私人的社区(如公司、协会或组织)之内;外部用户,对参与者没有限制。小世界现象是指连接任意两个人的相识关系的社会链普遍较短的假设。