网络应用模型
客户/服务器模型(C/S)
在客户/服务器模型(Client/Server,C/S)中,总是有一个打开的主机称为服务器,它服务于许多来自其他称为客户机的请求。
在客户/服务器模型中,客户程序必须知道服务器程序的地址,服务器需要运行同时处理多个远程或本地客户的请求。服务器系统启动后就一直自动调用并一直不断地运行,被动等待客户的请求,服务器程序不需要知道客户程序的地址。
客户/服务器模型的工作流程
- 服务器处于接收请求的状态
- 客户机发出服务请求,等待接收结果
- 服务器收到请求后,分析请求,进行处理,并将结果发送给客户机
客户/服务器模型的主要特点
- 网络中的计算机地位不平,服务器可以通过对用户权限的限制达到管理客户机的目的,使它们不能随意存储/删除数据,或进行其他受限的网络活动。整个网络的管理工作由少数服务器担当,网络的管理非常集中方便
- 客户机之间不直接通信
- 可扩展性不佳。受服务器硬件和带宽的限制,服务器支持的客户机数量有限
客户/服务器模型常见应用
- Web
- 文件传输协议FTP
- 远程登陆
- 电子邮件
浏览器/服务器模型(B/S)
浏览器/服务器模型(Browser/Server,B/S)是一种对C/S模型的变化和改进,在这种模型中,用户界面完全通过浏览器实现,一部分事务逻辑在浏览器实现,大部分事务逻辑在服务器中实现,它是一种特殊的客户/服务器模型,这种模型的客户是某种浏览器,采用HTTP协议通信。浏览器/服务器模型三层架构:
- 客户端表示层:由Web浏览器组成,它不存放任何应用程序
- 应用服务器层:由一台或多台服务器组成,处理应用中的所有事务逻辑等,具有良好的扩展性,可以随应用的需要增加服务器
- 数据中心层:由数据库系统组成,用于存放业务数据
浏览器/服务器模型的优点
- 具有分布性特点,可以随时进行查询,浏览等业务处理
- 业务扩展简方便,通过增加网页即可增加服务器的功能
- 维护简单方便,只需要改变网页,就可以实现所有用户的同步更新
- 开发简单,共享性强
P2P模型
在C/S和B/S模型中,系统的性能由服务器的性能决定,当大量用户请求服务时,服务器就必然成为系统的瓶颈。
P2P模型(Peer to Peer)的思想是整个网络的传输内容不保存在中心服务器上,每个结点都同时具有下载、上传的功能,其权力和义务是对等的。
在P2P模型中,没有服务器和客户机之分,任意一对计算机都是对等方(Peer),可以直接相互通信P2P模型的优点
- 减轻了服务器的计算压力,消除了对某个服务器的完全依赖,可以将任务分配到各个结点上,大大提高了系统效率和资源利用率
- 多个对等方之间可以直接共享文档
- 可扩展性好,传统服务器有响应和带宽的限制,因此只能接受一定数量的请求
- 网络健壮性强,单个结点的失效不会影响其他部分的结点
P2P模型的缺点
- 在获取服务的同时,还要给其他结点提供服务,会占用较多的内存,影响整机速度
- 经常进行P2P下载会对硬盘造成较大的损伤
域名系统(DNS)
域名系统(Domain Name System,DNS):是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名转换为便于机器处理的IP地址。DNS采用C/S模型,协议运行在UDP之上,使用53号端口层次域名空间
因特网采用层次树状结构的命名方法。任何一个连接到因特网的主机或路由器,都有唯一的层次结构名称,即域名。域是域名空间中一个可被管理的部分,域可以划分为子域,子域可以继续划分为子域的子域,这样就形成了顶级域,二级域、三级域等。每个域名都由标号序列组成,各标号之间用点(“.")隔开。如focus-wind.com这个域名,com是顶级域,focus-wind是二级域。域名标号(“.")
- 标号中的英文不区分大小写
- 标号中除了连字符(“-”)不能使用其他的标点符号
- 每个域名不超过63个字符,多标号组成的完整域名最长不超过255个字符
- 级别低的域名写在左边,级别高的域名写在右边
顶级域名(Top Level Domain,TLD)分类
- 国家(地区)顶级域名(nTLD),如“.cn”表示中国,“us”表示美国
- 通用顶级域名(gTLD),如“.com”表示公司,“.net”表示网络服务机构,".org“表示非营利性组织,".gov”表示国家或政府部门
- 基础结构域名(反向域名),用于反向域名解析,仅有一个 ".arpa“
在域名系统中,每个域分别由不同的组织进行管理,每个组织都可以将它们的域再分成一定数目的子域,并将子域委托给其他组织去管理
域名服务器
因特网将域名系统设计成了一个联机分布式的数据库系统。域名到IP地址的解析由运行在域名服务器上的程序完成,一个服务器所管辖的域称为区,各单位根据具体情况划分自己管辖的区,但一个区中所有结点必须连通。每个区设置相应的权限域名服务器,保存该区的主机域名到IP的映射。每个域名服务器不但能进行域名到IP的解析,还要具有连向其他域名服务器的信息,当自己不能进行域名到IP地址的转换时,能够知道到什么地方找其他域名服务器。
DNS使用层次方式组织域名服务器。
根域名服务器
根域名服务器是最高层次的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的IP地址。不管是本地域名服务器还是因特网任何一个域名的解析,只要自己无法完成解析,都要求助于根域名服务器。
因特网上有13个根域名服务器,13个根域名服务器都视为单个服务器,每个服务器是冗余服务器的集群,以提供安全性和可靠性。
根域名服务器用来管理顶级域,一般告诉本地域名服务器下一步应当找那个顶级域名服务器进行查询
顶级域名服务器
顶级域名服务器负责管理该顶级域名服务器注册的所有二级域名。收到DNS查询请求时,给出相应应当。响应可能是最后结果,也可能是下一步应当查询的域名服务器的IP地址。
授权域名服务器(权限域名服务器)
每台服务器都必须在授权域名服务器处登记。为了更可靠的工作,一台主机最好至少有两个授权域名服务器。许多域名服务器都同时充当本地域名服务器和授权域名服务器。
授权域名服务器总能将其管辖的主机名转换为该主机的IP地址
本地域名服务器
每个因特网服务提供者(ISP),或一所大学、一所大学的各个系,都可以拥有一个本地域名服务器。当一台主机提供DNS查询请求时,这个查询请求报文就发送给该主机的本地域名服务器。
域名解析过程
域名解析就是
- 正向解析:把域名映射为IP地址
- 反向解析:把IP地址映射成域名
当客户端需要域名解析时,通过本机的DNS客户端构造一个DNS请求报文,以UDP数据报的方法发往本地域名服务器。
域名解析有两种方式:迭代查询和递归与迭代相结合的查询。
递归查询
递归查询是:本地域名只需向根域名服务器查询一次,后面的几次查询都是递归的在其他几个域名服务器之间进行查询。低层DNS服务器查到数据后,按照递归返回结果方式的返回给上级DNS服务器,返回到根域名服务器后,根域名服务器将结果返回给本地域名服务器,本地域名服务器交付给主机。
递归与迭代相结合的查询
- 主机与本地域名服务器的查询是递归查询
- 本地域名服务器向根域名服务器的查询采用迭代查询
- 本地域名服务器向根域名服务器请求DNS请求,DNS查找到下一个服务器的IP地址,返回给本地域名服务器
- 本地域名服务器根据返回的IP地址查找对应的域名服务器,直到查找到解析的值
为了提高DNS查询的效率,减少因特网DNS查询报文数量。在域名服务器中广泛使用高速缓存。当一个DNS服务器收到DNS查询结果时,将DNS信息缓存到高速缓存中,当另一个相同的域名查询请求到达给DNS服务器时,能直接提供所要的查询服务。DNS服务器在一段时间后会丢弃高速缓存中的信息。
文件传输协议(FTP)
文件传输协议(File Transfer Protocol,FTP):是因特网使用最广泛的文件传送协议,FTP提供交互式的访问,允许客户指明文件的类型与格式,允许文件具有存取权限。屏蔽了计算机系统的细节,适合在异构网络中的任意计算机中传输文件。
FTP采用C/S模型,使用TCP可靠传输服务,FTP服务器进程由两大部分组成:主进程,负责接收新的请求;若干从属进程,负责处理单个请求
FTP提供的功能
- 提供不同种类主机系统之间的文件传输能力
- 以用户权限管理的方式提供用户对远程FTP服务器上的文件管理能力
- 以匿名FTP的方式提供公用文件共享的能力
FTP的工作步骤
- 打开FTP控制端口(21),使客户进程能够连接上
- 等待客户进程发送链接请求
- 启动从属进程处理客户进程发来的请求。主进程和从属进程并发执行,从属进程对客户进程的请求处理完毕后终止
- 回到等待状态,接收其他客户进程的请求
控制连接和数据连接
FTP在工作时使用两个并行的TCP连接:一个是控制连接(端口号21);一个是数据连接(端口号是20)控制连接(21)
服务器监听21号端口,等待客户连接,控制连接用户传输控制信息(如连接请求、传送请求等),并且控制信息都以7位ASCII格式发送。
FTP客户发出传送请求,通过控制连接发送给服务端的控制进程,在传输文件时可以使用控制连接控制数据传输(如终止数据传输),控制连接在整个会话期间一直处于打开状态。数据连接(20)
服务器端的控制进程收到FTP客户机发来的文件传输请求后,创建”数据传送进程“和”数据连接“。数据连接用来连接客户端和服务器端的数据传送进程,数据传送进程实际上完成文件的传送,传送完毕后,关闭数据传送进程并结束运行。
数据连接由两种传送模式: - 主动模式PORT:客户机连接到服务器21端口,登录成功后读取数据时,客户端随机开发一个端口,并发送命令告知服务器,服务器收到PORT命令和端口号后,通过20端口和客户端开发的端口连接,发送数据
- 被动模式PASV:客户机连接到服务器21端口,登录成功后读取数据时,发送PASV命令到服务器,服务器在本地随机开放一个端口,客户端连接到服务器开发的端口进行数据传输
因为FTP使用分离的控制连接,所以也称FTP的控制信息是带外(Out-of-band)传送的。
使用FTP,若要修改服务器上的文件,若要修改服务器上的文件,则需要将文件传送到本地主机,然后将修改后的文件副本传送到原服务器,来回传送耗费很多时间。
网络文件系统(NFS)采用另一个思路:允许进程打开一个远程文件,并能在该文件的某个特定位置开始读写数据。这样NFS可使用户复制一个大文件中的一个很小的片段,而不需要复制整个大文件。
电子邮件
电子邮件系统的组成结构
电子邮件是一种异步通信方式。电子邮件把邮件发送到收件人使用的邮件服务器,并放在其中的收件人邮箱中,收件人可以随时在网上使用邮件服务器进行读取。
一个邮件系统由三个主要组件构成:用户代理(User Agent)、邮件服务器和电子邮件协议(SMTP、POP3、IMAP等)
- 用户代理:用户与电子邮件系统的接口。
- 用户代理向用户提供一个友好的接口来发送和接收邮件。
- 用户代理至少具有撰写、显示和邮件处理等功能。
- 通常情况,用户代理是运行在PC上的客户端程序
- 邮件服务器:
- 功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况。
- 邮件服务器采用C/S模式,但必须能同时充当客户和服务器。
- 电子邮件协议:
- 邮件发送协议:用于用户代理向邮件服务器发送邮件或在邮件服务器之间发送邮件
- SMTP:用“推(Push)”的通信方式将邮件推送到SMTP服务器上
- 邮件读取协议:用于用户代理从邮件服务器读取邮件。
- POP3:用“拉(Pull)”的通信方式,用户读取邮件时,用户代理向邮件服务器发出请求,“拉”取用户邮箱中的邮件。
电子邮件的收发过程
- POP3:用“拉(Pull)”的通信方式,用户读取邮件时,用户代理向邮件服务器发出请求,“拉”取用户邮箱中的邮件。
- 邮件发送协议:用于用户代理向邮件服务器发送邮件或在邮件服务器之间发送邮件
- 发信人调用用户代理撰写和编辑要发送的邮件。用户代理用SMTP把邮件推送给发送端邮件服务器
- 发送端邮件服务器将邮件放入邮件缓存队列中,等待发送
- 发送端邮件服务器SMTP客户进程,发现邮件缓存中有待发送的邮件。向运行在接收端邮件服务器的SMTP服务器进程发起建立TCP连接
- TCP连接建立后,SMTP客户进程向SMTP服务器进程发送邮件。邮件发送完毕,SMTP关闭TCP连接
- 运行在接收端的邮件服务器中的SMTP服务器进程收到邮件后,将邮件放入收信人的用户邮件,等待收信人读取邮件
- 收信人收信时,调用用户代理,使用POP3(或IMAP)协议将邮件从接收端邮件服务器的用户邮箱中拉取
电子邮件格式与MIME
电子邮件格式
一个电子邮件分为信封和内容两大部分,邮件内容分为首部和主体两部分。RFC822规定了邮件的首部格式,而邮件的主体部分由用户自由撰写。用户写好首部后,邮件系统自动将信封所需的信息提取出来并写在信封上,用户不需要亲自填写信封上的信息。
邮件内容的首部包含一些首部行。每个首部行由一些关键字后跟冒号再跟值构成,有些关键字是必须的,有些是可选的。首部和主体之间用空行进行分割。
电子邮件构成: - 信封:由邮件系统自动将信封所需的信息提取并写在信封上
- 内容
- 首部:
- 首部行:关键字:值
- 主体:由用户自由撰写
邮件内容示例
```
首部:
From:focus@focus-wind.com
To:shangan@foxmail.com
Subject:Hello World!!!
- 首部:
内容:
~~~
```
- From:必填关键字,由邮件系统自动填入
- To:必填关键字,填入一个或多个收件人的电子邮箱
- Subject:可选关键字,邮件的主题,反映邮件的主要内容
多用途网际邮件扩充(MIME)
由于SMTP只能传送一定长度的ASCII码邮件,许多非英语国家的文件无法传送,且无法传送可执行文件及其他二进制对象,因此提出了多用途网际邮件扩充(Multipurpose Internet Mail Extensions,MIME)
MIME并未改动SMTP和取代SMTP,MIME继续使用现有的格式,但增加了邮件主体的结构,定义了传送非ASCII码的编码规则。MIME可在现有的电子邮件程序和协议下传送。MIME主要内容
- 5个新的邮件首部字段:MIME版本、内容描述、内部标识、传送编码、内容类型
- 定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化
- 定义了传送编码,可对任何内容格式进行转换,不会被邮件系统改变
电子邮件协议
简单邮件传输协议(SMTP,邮件发送协议)
简单邮件传输协议(Simple Mail Transfer Protocol,SMTP):是一种提供可靠且有效的电子邮件传输协议,控制两个相互通信的SMTP进程交换信息。SMTP提供C/S方式,因此负责发送邮件的SMTP进程是SMTP客户,负责接收邮件的SMTP进程是SMTP服务器。SMTP使用TCP连接,端口号为25。SMTP通信分为三个阶段:连接建立、邮件发送、连接释放。连接建立
- 发送人的邮件发送到发送方邮件服务器的邮件缓存中
- SMTP客户每隔一定的时间对邮件缓存扫描一次
- 如发现有邮件,就使用SMTP的熟知端口号(25)与接收方的邮件服务器SMTP服务器建立TCP连接
- 连接建立后,接收方SMTP服务器发出220 Service ready(服务就绪)
- 然后SMTP客户向SMTP服务器发送HELO命令,附上发送方的主机名。
SMTP不使用中间的邮件服务器。TCP连接在发送方和接收方的两个邮件服务器之间之间建立连接,当接收方邮件服务器因故障暂时无法建立连接时,发送方邮件服务器等待一段时间后再次尝试建立连接。
邮件传送
连接建立后,开始传送邮件:
- 邮件传送从MAIL命令开始,MAIL命令后面又发件人的地址。如:MAIL FROM:focus@focus-wind.com
- SMTP服务器准备好接收邮件,回答250 OK
- SMTP客户端发送一个或多个RCPT(Recipient)命令,格式为:RCPT TO:<收件人地址>
- RCPT命令的作用是弄清接收方系统是否已做好接收邮件的准备,然后才发送邮件,以便不致于发送很长邮件后才知道地址错误,避免浪费通信资源
- 每发送一个RCPT命令,都应有相应的信息从SMTP服务器返回,如250 OK或550 No such user here(无此用户)
- 收到OK回答后,客户端使用DATA命令,表示要开始传输邮件的内容
- 正常情况下,SMTP服务器回复的信息是354 Start mail input; end with \, \(\表示回车换行),此时SMTP客户端开始传送邮件内容,并以\, \表示文件内容结束。
连接释放
邮件发送完毕后,SMTP客户发送QUIT命令,SMTP服务器返回信息是221(服务关闭),表示SMTP同意释放TCP连接,邮件传送过程结束邮局协议(POP,邮件读取协议)
邮局协议(Post Office Protocol,POP):是一个非常简单但功能有限的邮件读取协议,限制使用的是第3版邮局协议POP3。POP3采用“拉(Pull)”的方式通信,当用户读取邮件时,用户代理向邮件服务器发出请求,拉取用户邮箱中的邮件
POP使用C/S的工作方式,传输层使用TCP,端口号是110.接收方的用户代理上必须运行POP客户程序,接收方的邮件服务器上运行POP服务器程序。
POP有两种工作方式: - 下载并保留:用户从邮件服务器上读取邮件后,邮件依然保存在邮件服务器上,用户可再次从邮件服务器上读取该邮件
- 下载并删除:邮件一旦被读取,就被从邮件服务器上删除,不能再从邮件服务器上读取
因特网报文存取协议(IMAP,邮件读取协议)
因特网报文存取协议(IMAP)比POP复杂的多,IMAP为用户提供创建文件夹,再不同文件夹之间移动邮件及在远程文件夹中查询邮件等联机命令,因此,IMAP服务器维护了会话用户的状态信息。
IMAP允许用户代理只获取报文的部分信息,如只读取报文的首部或IMIE报文的一部分,适用于低带宽的情况。基于万维网的电子邮件
随着万维网的发展,目前出现了很多基于万维网的电子邮件,如Gmail,Outlook等。
这些电子邮件的特点是: - 用户浏览器与万维网的邮件服务器之间的邮件发送或接收使用的是HTTP协议
- 在不同邮件服务器之间传送邮件时使用SMTP协议
万维网(WWW)
WWW 的概念与组成结构
万维网(World Wide Web,WWW):是一个分布式、联机式的信息存储空间,在这个空间中:一样有用的事物称为一样“资源”,并由一个全域“统一资源定位符(URL)”标识。这些资源通过超文本传输协议(HTTP)传送给使用者,后者通过单机链接来获取资源。
万维网使用链接的方式能非常方便的从因特网的一个站点访问另一个站点,从而主动地按需获取信息。超文本标记语言(HyperText Markup Language,HTML)使万维网页面设计者可以很方便地用一个超链接从本页面的某处链接到因特网的任何一个万维网界面。万维网内核部分构成
- 统一资源定位符(URL):复杂标识万维网上的各种文档,使每个文档在万维网的范围内具有唯一的标识符URL
- URL的一般形式:<协议>://<主机>:<端口>/<资源路径>
- 主机是存放资源的主机在因特网中的域名或IP地址
- 在URL中不区分大小写
- 端口和资源路径有时可省略
- 超文本传输协议(HTTP):应用层协议,使用TCP进行可靠的传输,HTTP是万维网客户程序和服务器程序之间交互所必须遵守的协议
- 超文本标记语言(HTML):一种文档结构的标记语言,使用一些约定的标记对页面上的各种信息、格式进行描述
万维网的工作流程
- Web用户使用浏览器与Web服务器建立连接,并发送浏览请求
- Web服务器把URL转换为文件路径,并返回信息给Web浏览器
- 通信完成,关闭连接
超文本传输协议(HTTP)
HTTP协议定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。HTTP是面向事务(Transaction-oriented)的应用层协议,规定了在浏览器和服务器之间的请求和响应的格式与规则。HTTP的操作过程
按用户单击鼠标后发生的事件顺序: - 浏览器分析链接指向页面的URL
- 浏览器向DNS请求解析主机的IP地址
- 域名系统DNS解析出主机的IP地址
- 浏览器与该服务器建立TCP连接(HTTP默认端口为80)
- 浏览器发出HTTP请求
- 服务器通过HTTP响应把资源发送给浏览器
- 释放TCP连接
- 浏览器解释资源文件,并把Web页面呈现给用户
HTTP的特点
- HTTP使用TCP作为运输层协议,但HTTP本身是无连接的。即HTTP使用了TCP连接,但通信的双方在交互HTTP报文之前不需要先建立HTTP连接,不必考虑数据在传输过程中被丢弃后怎样被重传,通过TCP保证了数据的可靠传输。
- HTTP是无状态的。同一个用户重复访问服务器的页面时,服务器的响应与第一次被访问时相同。服务器不记得曾经访问过这个用户,也不记得为该用户曾经服务过多少次。
- HTTP无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP请求
- 实际应用中,使用Cookie和数据库的方式来跟踪用户的活动
- Cookie工作原理:当用户浏览某个使用Cookie的网站时,该网站服务器为用户产生一个唯一的标识码,当用户继续浏览相同的网站时,会取出标识码,放入请求报文的Cookie首部行中。服务器根据请求报文的Cookie识别码从数据库中查询该用户的活动记录,进而执行一些个性化的工作
- HTTP既可以使用非持久连接,也可以使用持久连接(HTTP/1.1支持)
- 非持久连接:每个网页元素对象的传输都需要单独建立一个TCP连接。
- 请求一个万维网文档所需的时间是该文档的传输时间加上两倍往返时间RTT(一个RTT用于TCP连接,一个RTT用于请求和接收文档)
- 每个对象引用都导致2RTT的开销,每次建立新的TCP连接都要分配缓存和变量,使万维网服务器负担更重
- 持久连接:万维网服务器在发送响应后仍然保持这条连接,使同一个客户和该服务器可以继续在这条连接上传送后续的HTTP请求和响应报文
- 非流水线式:
- 客户在收到前一个响应后才能发出下一个请求。
- 服务器发送完一个对象后,其TCP连接就处于空闲状态,浪费了服务器资源。
- 流水线式:
- 客户每遇到一个对象引用就立即发出一个请求,客户可以逐个连续发出对各个引用对象的请求
- 所有的请求和响应都是连续发生的,所有引用的对象共经历1个RTT延迟,减少了TCP连接中的空闲事件
- HTTP/1.1默认使用流水线的持久连接
HTTP报文结构
HTTP是面向文本(Text-Oriented)的,因此报文的每个字段都是一些ASCII码串,每个字段的长度都是不确定的HTTP报文分类
- 非流水线式:
- 非持久连接:每个网页元素对象的传输都需要单独建立一个TCP连接。
- 请求报文:从客户向服务器发送的请求报文
- 响应报文:从服务器到客户的回答
HTTP的报文组成
- 开始行:用于区分是请求报文还是响应报文
- 请求行:请求报文的开始行
- 方法:对所请求对象进行的操作
- 请求资源的URL
- HTTP版本
- 状态行:响应报文的开始行
- HTTP版本
- 响应状态码
- 短语
- 开始行的三个字段之间使用空格分隔,最后以CRLF(CR:回车,LF:换行)接收
- 请求行:请求报文的开始行
- 首部行:用来说明浏览器、服务器或报文主体的一些信息
- 首部可以有几行,也可以不使用
- 每个首部行都有首部字段名和它的值
- 每一行的结束的地方用回车和换行分割
- 整个首部行结束,还有一行空行将首部行和后面的实体主体分开
- 实体主体:与HTTP请求或回应一起发送的实体主体的格式和编码信息都在实体标题域
- 实体主体只在请求方法有要求时才会被放在请求消息中。请求消息标题域处的内容长度
HTTP请求报文常用方法
| 方法 | 意义 |
| -- | -- |
| GET | 请求指定的页面信息,并返回实体主体 |
| HEAD | 类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报文 |
| POST | 像指定资源提交数据进行处理(例如提交表单或者上传文件),数据被包含在请求体中,POST请求可能会导致新的资源的建立或已有资源的修改 |
| PUT | 从客户端向服务器传送数据取代指定的文档的内容 |
| DELETE | 请求服务器删除指定的页面或资源 |HTTP状态码
HTTP状态码分类
| 分类 | 分类描述 |
| -- | -- |
| 1 | 信息,服务器收到请求,需要请求者继续执行操作 |
| 2 | 成功,操作被成功接收并处理 |
| 3 | 重定向,需要进一步的操作以完成请求 |
| 4 | 客户端错误,请求包含语法错误或无法完成请求 |
| 5** | 服务器错误,服务器在处理请求的过程中发生了错误 |常见状态码
| 状态码 | 英文名称 | 中文描述 |
| -- | -- | -- |
| 200 | OK | 请求成功。一般用于GET与POST请求 |
| 400 | Bad Request | 客户端请求的语法错误,服务器无法理解 |
| 401 | Unauthorized | 请求要求用户的身份认证 |
| 403 | Forbidden | 服务器理解请求客户端的请求,但是拒绝执行此请求 |
| 404 | Not Found | 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面 |
| 408 | Request Time-out | 服务器等待客户端发送的请求时间过长,超时 |
| 502 | Bad Gateway | 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 |简单网络管理
简单网络管理协议(SNMP)
简单网络管理协议(Simple Network Management Protocol,SNMP):是专门设计用于在IP网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。 SNMP使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。通过SNMP接收随机消息(及事件报告)网络管理系统获知网络出现问题。
SNMP主要由:管理信息结构SMI(Structure ofManagement Information)、管理信息库MIB和管理协议SNMP构成。
- 实体主体只在请求方法有要求时才会被放在请求消息中。请求消息标题域处的内容长度
- 管理信息结构SMI:定义了SNMP框架所用信息的组织和标识,为MIB定义管理对象及使用管理对象提供模板。
- 管理信息库MIB:定义了可以通过SNMP进行访问的管理对象的集合。
- 一种树状数据库,MIB管理的对象,就是树的端节点,每个节点都有唯一位置和唯一名字,其命名规则就是父节点的名字作为子节点名字的前缀。
- 管理协议SNMP:是应用层协议,定义了网络管理者如何对代理进程的MIB对象进行读写操作。
一个SNMP管理的网络由三个关键组件构成:
- 网络管理系统(Network-management systems,NMS):网络管理系统运行应用程序,以该应用程序监视并控制被管理的设备。也称为管理实体(managingentity)
- 网络管理员在这儿与网络设备进行交互
- 网络管理系统提供网络管理需要的大量运算和记忆资源
- 一个被管理的网络可能存在一个以上的网络管理系统
- 被管理的设备(managed device):被管理的设备是一个网络节点,它包含一个存在于被管理的网络中的SNMP代理者
- 被管理的设备通过管理信息库(MIB)收集并存储管理信息,并且让网络管理系统能够通过SNMP代理者取得这项信息
- 代理者(agent):一种存在于被管理的设备中的网络管理软件模块
- 代理者控制本地机器的管理信息,以和SNMP兼容的格式传送这项信息
SNMP的优点
- 代理者控制本地机器的管理信息,以和SNMP兼容的格式传送这项信息
- 基于TCP/IP互联网的标准协议,传输层协议一般采用UDP。
- 自动化网络管理。网络管理员可以利用SNMP平台在网络上的节点检索信息、修改信息、发现故障、完成故障诊断、进行容量规划和生成报告。
- 屏蔽不同设备的物理差异,实现对不同厂商产品的自动化管理。SNMP只提供最基本的功能集,使得管理任务与被管设备的物理特性和实际网络类型相对独立,从而实现对不同厂商设备的管理。
- 简单的请求—应答方式和主动通告方式相结合,并有超时和重传机制。
- 报文种类少,报文格式简单,方便解析,易于实现。
- SNMPv3版本提供了认证和加密安全机制,以及基于用户和视图的访问控制功能,增强了安全性。
常见应用层协议
| 应用程序 | FTP数据连接 | FTP控制连接 | TELNET | SMTP | DNS | TFTP | HTTP | POP3 | SNMP | HTTPS |
| -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- |
| 使用协议 | TCP | TCP | TCP | TCP | UDP| UDP| TCP| TCP | UDP| TCP |
| 熟知端口号 | 20 | 21 | 23 | 25 | 53 | 69 | 80 | 110 | 161 | 443 |