声明:本文是作者阅读《软件系统架构与开发环境》后的摘录笔记。
1 概述
C-S架构是最常用的分布式软件系统架构,分别为“客户端”和“服务器端”构件。它们往往通过某种协议互相连接,这个协议就是连接器,一般来说,采用标准化或部分标准化的协议有助于提高系统的可理解性、可验证性、互操作性、可移植性、可复用性。
C-S协议的相关标准分为两类:一类详细规定了客户与服务器之间的交互规则,包括它们互相交换的信息模型以及信息交换的过程,例如HTTP、WebDAV和LDAP协议;另一类值只规范协议的接口,例如JDBC/ODBC协议。
协议数据单元PDU(protocoldata unit),一般指协议交换的消息数据及其格式。为了达到跨平台,对PDU进行独立描述,引进中立化的信息交换语言,其中影响较大的是ASN.1、HTML与XML。
2 HTTP及其扩展协议
2.1 HTTP协议概要
HTTP(Hypertext Transfer Protocol)即超文本链接,主要用于B-S系统的客户端与服务器之间传递混合媒体数据,主要从五个技术要点进行介绍:
(1)服务器资源与MIME
客户端通过HTTP可以从服务器获取数据或服务,它们一般被组织为可标示的单元,称为服务器资源。
(2)请求-响应模式
HTTP采用基于消息的互操作技术。
(3)TCP连接管理器
HTTP以TCP作为底层传输协议,协议双方通过各自的套接字来收发PDU,通常都不必关心网络连接是否正确,数据是否丢失等,因为这些都是TCP及更低层网络协议的任务。
3.2.2 URL与URI
URL (uniform resource locator)为统一资源定位,优势称为Web地址,由三部分组成:1、指示协议,2、指示资源所在主机,3、指示资源在主机上的路径。
URI是(uniform resource identifier),一般认为URL是URI的子集,URI是URL的扩展,URI分为绝对(absoluteURI)和相对(relativeUREthane)两种。
Request For Comments(RFC),是一系列以编号排定的文件。文件收集了有关互联网相关信息,以及UNIX和互联网社区的软件文件。目前RFC文件是由Internet Society(ISOC)赞助发行。基本的互联网通信协议都有在RFC文件内详细说明。RFC文件还额外加入许多的论题在标准内,例如对于互联网新开发的协议及发展中所有的记录。因此几乎所有的互联网标准都有收录在RFC文件之中。
3 HTTP协议的PDU
a) 请求消息
b)响应消息
4 B-S架构与HTTP协议封装
基于HTTP协议的C-S架构就是B-S架构。客户端构建为浏览器而得名,服务器一般称为Web服务器。
LDAP协议与JNDI
LADP是一个应用比较广泛的目录服务协议,全称为LightweightDirectory Access Protocol,即轻量目录访问协议,由OSI的DAP演化而来。