A. 因特网上的服务器是基于什么协议那么Web服务基于什么协议
TCP / HTTP。
B. Web服务的统一资源地址URL的资源类型是A.http B.ftp C.news D.www
选择A:http
C. 1、什么是WEB服务;什么是FTP服务
什么是Web服务?
本文是架构Web服务的系列文章的第二篇,从Web服务的技术定义开始,来探讨什么是Web服务。首先,作者从技术角度详细分析了Web服务作为Internet环境下的软件组件的基本角色,从这个基本角色开始,详细介绍了这个组件对象的包装规范Web Service "stack",并对Web服务的应用做了分类,最后借助Garnter Group的材料考察了Web服务的当前发展状况。
在本系列的上一篇文章中,我就为什么需要Web服务,从商业利益需求的角度进行了分析。本文将结合技术驱动的发展需求,详细介绍从技术上来看,到底什么是Web服务,以及Web服务的应用分类。就技术角度而言,无论从哪个角度来看,Web服务都是对象/组件技术在Internet中的延伸。
本文所引用的资源主要包括两类,一类是Web服务的技术资源网站,包含了大量Web服务的技术信息,另一类是Web服务“stack"系列技术规范,他们是一个整体的技术体系,包括UDDI、SOAP、WSDL、XML等。本文的最后给出了这些资源的链接,有兴趣的读者可以通过这些 资源链接找到所需的内容。
Web对象
从外部的使用者的角度而言,Web服务是一种部署在Web上的对象/组件,它具备以下特征:
完好的封装性,Web服务既然是一种部署在Web上的对象,自然具备对象的良好封装性,对于使用者而言,他能且仅能看到该对象提供的功能列表。
松散耦合,这一特征也是源于对象/组件技术,当一个Web服务的实现发生变更的时候,调用者是不会感到这一点的,对于调用者来说,只要Web服务的调用界面不变,Web服务的实现任何变更对他们来说都是透明的,甚至是当Web服务的实现平台从J2EE迁移到了.NET或者是相反的迁移流程,用户都可以对此一无所知。对于松散耦合而言,尤其是在Internet环境下的Web服务而言,需要有一种适合Internet环境的消息交换协议。而XML/SOAP正是目前最为适合的消息交换协议。
使用协约的规范性,这一特征从对象而来,但相比一般对象其界面规范更加规范化和易于机器理解。首先,作为Web服务,对象界面所提供的功能应当使用标准的描述语言来描述(比如WSDL);其次,由标准描述语言描述的服务界面应当是能够被发现的,因此这一描述文档需要被存储在私有的或公共的注册库里面。同时,使用标准描述语言描述的使用协约将不仅仅是服务界面,它将被延伸到Web服务的聚合、跨Web服务的事务、工作流等,而这些又都需要服务质量(QoS)的保障。其次,我们知道安全机制对于松散耦合的对象环境的重要性,因此我们需要对诸如授权认证、数据完整性(比如签名机制)、消息源认证以及事务的不可否认性等运用规范的方法来描述、传输和交换。最后,在所有层次的处理都应当是可管理的,因此需要对管理协约运用同样的机制。
使用标准协议规范,作为Web服务,其所有公共的协约完全需要使用开放的标准协议进行描述、传输和交换。这些标准协议具有完全免费的规范,以便由任意方进行实现。一般而言,绝大多数规范将最终有W3C或OASIS作为最终版本的发布方和维护方。
高度可集成能力。由于Web服务采取简单的、易理解的标准Web协议作为组件界面描述和协同描述规范,完全屏蔽了不同软件平台的差异,无论是CORBA、DCOM还是EJB都可以通过这一种标准的协议进行互操作,实现了在当前环境下最高的可集成性。
Web Service "Stack"
在前一节中,我们已经了解到为了完成在松散耦合的环境下的对象访问,以及在基本对象访问之上的诸如事务、工作流、安全机制等。实现一个完整的Web服务体系需要有一系列的协议规范来支撑。
Figure 1. Web Service "stack"
其中,绿色部分是先前已经定义好的并且广泛使用的传输层和网络层的标准:IP、HTTP、SMTP等。而蓝色部分是目前开发的Web服务的相关标准协议,包括服务调用协议SOAP、服务描述协议WSDL和服务发现/集成协议UDDI,以及服务工作流描述语言WSFL。而橙色部分描述的是更高层的待开发的关于路由、可靠性以及事务等方面的协议。黄色部分是各个协议层的公用机制,这些机制一般由外部的正交机制来完成。
从以上这个技术层次图我们看以看到,Web服务追求的第一目标是简单性。可能大家会觉得很奇怪,有那么多协议,怎么能说他简单。
首先,这些协议本身都是简单的,无论是HTTP, FTP等传统的TCP/IP系统的网络协议,还是SOAP, WSDL, UDDI, WSFL等基于XML的协议,他们设计原则中的一个最重要点就是力求简单性。相信大家如果对XML、SOAP等有深入了解的话,一定会深深体会这一点。
其次,一个可以使用的Web服务应当按照需要选用若干层次的功能,而无需所有的特性。比如在目前状况下,一个简单应用可能只要使用WSDL/SOAP就可以架构一个符合规范的Web服务了。
最后,所有的机制完全是基于现有的技术,并没有创造一个完全的新体系。无论是IPv4、HTTP、FTP这些现有的网络协议,还是SOAP、WSDL等这些基于XML而定义的协议都是遵循着一个原则:继承原有的被广泛接受的技术,这样才能使得Web服务被广泛接受。
Web服务的类别
综合当今的Web应用以及Web服务的特点,我们认为Web服务实施的领域可以分为四类:
Business-Oriented Web Service: 该类服务针对的是那些面向企业应用服务,包括企业内部的ERP系统,企业间的SCM/CRM等系统。当这些系统以Web服务的形式在网络(Internet和intranet)中出现时,企业内的应用集成将更未容易,而在企业间的众多合作伙伴的系统对接也将不再是无法完成的任务。目前现有的解决方案和产品的提供商有Bowstreet、Epicentric等。
Consumer-Oriented Web Service: 此类服务针对的是那些原先的B2C的网站的改造,为这些Browser-Oriented的Web应用增加(注意是增加)了Web服务的应用界面,使得第三方的桌面工具或其自身提供的增值的桌面工具能够利用更优秀的用户界面提供跨越多个B2C服务的桌面服务。这将使得用户使用Internet更为方便,能够获得更加便捷的服务。比如我们完全就可以在个人理财桌面系统中集成(调用)Internet上的股票价格查询Web服务、机票预定Web服务等,使得个人理财应用的自动化程度更高。
Device-Oriented Web Service: 此类服务的使用终端一般是手持设备和日用家电,对于前者而言,可以在不用修改网络服务的体系架构的前提下,令先前的网络服务支持除PC以外的各种终端,比如Palm、PocketPC、手机等。如此,那些天气预报服务、Email服务、主动信息服务等将更为有效和便捷。而后者对于日用家电,则可能是一个市场的启动期,有了Web服务作为基础框架,智能型的日用家电将真正获得标准的支持,从而有了广泛使用的可能。
System-Oriented Web Service: 一些传统意义上的系统服务,比如用户权限认证,系统监控等,如果被迁移到全球范围的Internet上,或者企业内部的intranet上,其作用范围将从单个系统或局部网络拓展到整个企业网络或整个Internet。如此,基于同一系统服务的不同应用将得以在整个Internet环境中部署,譬如跨国企业的所有在线服务可以使用同一个用户权限认证Web服务。
Web服务: 当今的技术最亮点
Figure 2. Web服务的当前发展状况
以上这幅图是Gartner Group在研究了所有IT主流时尚技术的发展道路后,作出的抽象模型。Y轴表明技术的受关注程度,而X轴则表示技术的应用的成熟度。每一项技术在从出现到成熟的整个过程都将沿着图中的曲线前进,而且典型地,都将被划分为五个阶段:
技术显现:一门技术被发明或定义之后,开始进入公众的视野;
不断膨胀的期望期:由于该项技术的划时代的突破,使人们对这项技术有着无比美好的想象和期望,这一阶段类似"网络的泡沫器";
希望破灭之后的醒悟期:由于每项技术都不是万能的,真正获得使用仍然需要务实的加以应用研究,因此此时人们发现这项技术似乎并没有期望中那么有用,这一阶段类似"网络的泡沫破灭";
豁然开朗的应用发展期:经过了一个阶段的开发和研究,该项技术终于走上了良性发展的轨道,越来越多的人接受并使用了该项技术;
大量的工业化生产期:该项技术成为业界主流,大量应用在具体的环境中。
什么是FTP服务器
FTP(文件传输协议)服务被广泛应用于提供软件下载服务、web网站内容更新服务以及不同类型计算机间的文件传输服务。除了软件下载服务可以由web服务替代,不同类型计算机间的文件传输服务可以由电子邮件部分替代以外,web网站内容的更新服务即文件的上载服务,仍然要借助于FTP来完成。
功能
(1)软件下载服务
与超文本传输协议(HTTP)不同,FTP使用两一个端口用于接收文件。所以,对于文件传输而言,FTP要比HTTP的效率高得多。因此,即使在web服务能够提供软件下载的今天,FTP服务依然是各专业软件下载站点提供下载服务的最主要方式。
(2)web网站内容的更新
web网站中的内容只有不断地更新和完善才能更多地吸引浏览者的目光。虽然有多种web网站内容更新的解决方案,但其中最安全和最方便的方式当属FTP方式。
当一台服务器上拥有若干虚拟Web站点或虚拟目录时,并且这些虚拟web站点或虚拟目录分别由不同的用户维护时,可分别建立若干虚拟FTP服务器,将虚拟FTP服务器的主目录与虚拟Web服务器的主目录一一对应起来,并分别为每个虚拟FTP站点指定相应的授权用户,即可由各网站管理员利用FTP客户端程序实现对自己web站点内容的管理和维护。
(3)不同类型计算机间的文件传输
FTP和所有的TCP/IP家族成员一样,都是与平台无关的。虽然Windows系列的计算机之间可以通过资源共享的方式(如共享文件夹)实现数据交换,但不同类型的计算机之间则无法通过类似的机制实现数据共享,只能采用其他可跨越操作系统平台的方式,如E-mail附件、web站点下载和FTP文件传输的方式实现。其中,只有FTP文件传输的交互性最好。
(4)数据的备份和存储
借助于FTP服务,我们可以把重要文件上传至FTP服务器保存起来,从而有效地实现数据的备份和存储,即使本地计算机发生“灾难”,也可以充分保证远程数据的存储安全。
D. HTTP服务器与WEB服务器一样吗
本质上是一样的.不过功能可以细分.http服务器大多数定义放网页的服务器.web可以包括 FTP,mail等.
E. 为什么服务器分为WEB服务器,邮件服务器.和文件服务器
说得简单点,也明白点
三个服务器可以合在一起用一个服务器,但如果合在一起,有个不好的弊端,就是,万一把这三个服务器合在一台上,如果出了问题,那么三样都不能用了,处于安全考虑,一般的公司都是分得很细的
F. 什么是WEB服务,FTP 服务,SMTP服务!
通俗的讲,Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑(business logic)。
下面让我们来细细道来:
Web服务器(Web Server)
Web服务器可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response),例如送回一个HTML页面。为了处理一个请求(request),Web服务器可以响应(response)一个静态页面或图片,进行页面跳转(redirect),或者把动态响应(dynamic response)的产生委托(delegate)给一些其它的程序例如CGI脚本,JSP(JavaServer Pages)脚本,servlets,ASP(Active Server Pages)脚本,服务器端(server-side)JavaScript,或者一些其它的服务器端(server-side)技术。无论它们(译者注:脚本)的目的如何,这些服务器端(server-side)的程序通常产生一个HTML的响应(response)来让浏览器可以浏览。
要知道,Web服务器的代理模型(delegation model)非常简单。当一个请求(request)被送到Web服务器里来时,它只单纯的把请求(request)传递给可以很好的处理请求(request)的程序(译者注:服务器端脚本)。Web服务器仅仅提供一个可以执行服务器端(server-side)程序和返回(程序所产生的)响应(response)的环境,而不会超出职能范围。服务器端(server-side)程序通常具有事务处理(transaction processing),数据库连接(database connectivity)和消息(messaging)等功能。
虽然Web服务器不支持事务处理或数据库连接池,但它可以配置(employ)各种策略(strategies)来实现容错性(fault tolerance)和可扩展性(scalability),例如负载平衡(load balancing),缓冲(caching)。集群特征(clustering—features)经常被误认为仅仅是应用程序服务器专有的特征。
应用程序服务器(The Application Server)
根据我们的定义,作为应用程序服务器,它通过各种协议,可以包括HTTP,把商业逻辑暴露给(expose)客户端应用程序。Web服务器主要是处理向浏览器发送HTML以供浏览,而应用程序服务器提供访问商业逻辑的途径以供客户端应用程序使用。应用程序使用此商业逻辑就象你调用对象的一个方法(或过程语言中的一个函数)一样。
应用程序服务器的客户端(包含有图形用户界面(GUI)的)可能会运行在一台PC、一个Web服务器或者甚至是其它的应用程序服务器上。在应用程序服务器与其客户端之间来回穿梭(traveling)的信息不仅仅局限于简单的显示标记。相反,这种信息就是程序逻辑(program logic)。 正是由于这种逻辑取得了(takes)数据和方法调用(calls)的形式而不是静态HTML,所以客户端才可以随心所欲的使用这种被暴露的商业逻辑。
在大多数情形下,应用程序服务器是通过组件(component)的应用程序接口(API)把商业逻辑暴露(expose)(给客户端应用程序)的,例如基于J2EE(Java 2 Platform, Enterprise Edition)应用程序服务器的EJB(Enterprise JavaBean)组件模型。此外,应用程序服务器可以管理自己的资源,例如看大门的工作(gate-keeping ties)包括安全(security),事务处理(transaction processing),资源池(resource pooling), 和消息(messaging)。就象Web服务器一样,应用程序服务器配置了多种可扩展(scalability)和容错(fault tolerance)技术。
什么是FTP呢?FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写。该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载(download)”文件。若将文件从自己计算机中拷贝至远程计算机上,则称之为“上载(upload)”文件。在TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。FTP协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联接的方式、甚至是是否使用相同的操作系统无关。假设两台计算机通过ftp协议对话,并且能访问Internet, 你可以用ftp命令来传输文件。每种操作系统使用上有某一些细微差别,但是每种协议基本的命令结构是相同的。
FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。
1.ASCII传输方式:假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。
但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印字符)。在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝,不要对这些文件进行处理,这也是下面要讲的二进制传输。
2.二进制传输模式:在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。
如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢 ,也会损坏数据,使文件变得不能用。(在大多数计算机上,ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果你传输二进制文件,所有的位都是重要的。)如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。
5. FTP的工作方式
FTP支持两种模式,一种方式叫做Standard (也就是 PORT方式,主动方式),一种是 Passive (也就是PASV,被动方式)。 Standard模式 FTP的客户端发送 PORT 命令到FTP服务器。Passive模式FTP的客户端发送 PASV命令到 FTP Server。
下面介绍一个这两种方式的工作原理:
Port模式FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。
Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。
很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。
SMTP是SIMPLE MAIL TRANSFER PROTOCOL的缩写,一般的发信软件,如Outlook Express、FoxMail、Eudora都是使用这个协议进行发信的。如果你的ISP没有提供SMTP服务器,那你就无法使用该协议发送信件。无法从一个邮箱的域名知道它是否提供SMTP服务或者SMTP服务器是什么。如果不知道自己信箱的SMTP服务器,可以向提供信箱的ISP询问。现在为了避免滥发垃圾邮件,许多免费邮件的提供商都不提供SMTP服务器,如Hotmail、eyou,这些免费邮件用户只能登录后通过浏览器发信。收费邮件一般都提供POP3和SMTP服务器。
G. HTTP和FTP的区别
一、简单的说HTTP和FTP是不同的协议。
HTTP是Hyper Text Transfer Protocol,超文本传输协议;
FTP是File Transfer Protocol,文件传输协议;
HTTP是面向网页的,而FTP是面向文件的。
二、详细的解释如下:
1.FTP
(1)FTP比HTTP复杂
FTP和HTTP一样都是Internet上广泛使用的协议,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。
(2)FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。而FTP的复杂性就在于此。
2.HTTP
HTTP协议是什么
在浏览器的地址栏里输入的网站地址叫做URL (Uniform Resource Locator,统一资源定位符)。就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet地址。
当浏览器的地址框中输入一个URL或是单击一个超级链接时,URL就确定了要浏览的地址。浏览器通过超文本传输协议(HTTP),将Web服务器上站点的网页代码提取出来,并翻译成漂亮的网页。
H. 什么叫代理服务器,什么是http服务器,什么是web服务器,什么是ftp服务器,请举例说明
■ 什么是代理服务器? 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。在一般情况下,我们使用网络浏览器直接去连接其他Internet站点取得网络信息时,是直接联系到目的站点服务器,然后由目的站点服务器把信息传送回来。代理服务器是介于浏览器和Web服务器之间的另一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。 大部分代理服务器都具有缓冲的功能,就好象一个大的Cache,它有很大的存储空间,它不断将新取得数据储存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显着提高浏览速度和效率。 更重要的是:代理服务器是 Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联 (OSI) 模型的对话层,从而起到防火墙的作用。 鉴于上述原因,代理服务器大多被用来连接INTERNET(局域网)和INTRANET(国际互联网)。在国内,所谓中国多媒体公众信息网和教育网都是独立的大型国家级局域网,是与国际互联网隔绝的。出于各种需要,某些集团或个人在两网之间开设了代理服务器,如果我们知道这些代理服务器的地址,就可以利用它到达网外网,例如从169到达163。代理服务器就象是连接两岸的桥梁,但是169与163之间的代理服务器一般的都被设置了访问密码,或者要收代理费用,阿Z搜索并提供的是完全免费的代理服务器地址,完全没有任何限制,不需缴交任何额外费用! ■ 为何要开设代理服务器? 1、连接Internet与Intranet 充当firewall(防火墙):因为所有内部网的用户通过代理服务器访问外界时,只映射为一个IP地址,所以外界不能直接访问到内部网;同时可以设置IP地址过滤,限制内部网对外部的访问权限;另外,两个没有互联的内部网,也可以通过第三方的代理服务器进行互联来交换信息。 2、节省IP开销:如前面所讲,所有用户对外只占用一个IP,所以不必租用过多的IP地址,降低网络的维护成本。这样,局域局内没有与外网相连的众多机器就可以通过内网的一台代理服务器连接到外网,大大减少费用。当然也有它不利的一面,如许多网络黑客通过这种方法隐藏自己的真实IP地址,而逃过监视。 3、提高访问速度:本身带宽较小,通过带宽较大的proxy与目标主机连接。而且通常代理服务器都设置一个较大的硬盘缓冲区(可能高达几个GB或更大),当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,从而达到提高访问速度的目的。 使用代理服务器有那些好处? 在我国,上网分为163和169两种。169用户又分为三类(全国各地分类口径可能不同),一类用户拥有网外权,可以直接享受国际互联网的所有服务;另一类为注册用户,使用注册的帐号上网,第三类称为GUEST用户,使用公用的账号上网,采取主叫记费制。无网外权用户的收费低廉,但只能与中国多媒体信息网中的(IP地址以10开头)的网站连接。所谓"畅游网络世界"只不过是句空话!您是否也经历过这样的痛苦:由于钞票所限,每天只能徘徊在169上,仰头望着163中一堆堆的国际互联网信息、资源和免费大餐,口水直流……哎! 现在好了,有了代理服务器,我们大家就可以任意出国,用169的低廉代价得到163中的服务了!正如前面讲到的,如果我们知道这些代理服务器的地址,就可以利用它到达网外网,从169到达163。阿Z搜索并提供的是完全免费的代理服务器地址,完全没有任何限制,不需缴交任何额外费用!INTERNET上的免费电子信箱、主页空间、ICQ、FTP、各种信息资源……统统敞着来吧!你仍然只需支付169的低廉上网费用!另外,由于目的服务器只能查出你所使用的代理服务器的IP,所以还有一些不言而喻的好处,例如在聊天室不容易轻易被人踢出去了! 使用代理的上网速度怎样?
I. 什么是WEB服务和FTP服务
FTP(File Transfer Protocol)是文件传输协议的简称。
FTP的作用
正如其名所示:FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。
FTP工作原理
拿下传文件为例,当你启动FTP从远程计算机拷贝文件时,你事实上启动了两个程序:一个本地机上的FTP客户程序:它向FTP服务器提出拷贝文件的请求。另一个是启动在远程计算机的上的FTP服务器程序,它响应你的请求把你指定的文件传送到你的计算机中。FTP采用“客户机/服务器”方式,用户端要在自己的本地计算机上安装FTP客户程序。FTP客户程序有字符界面和图形界面两种。字符界面的FTP的命令复杂、繁多。图形界面的FTP客户程序,操作上要简洁方便的多。
简单地说,支持FTP协议的服务器就是FTP服务器,下面介绍一下什么是FTP协议(文件传输协议)
一般来说,用户联网的首要目的就是实现信息共享,文件传输是信息共享非常重要的一个内容之一。Internet上早期实现传输文件,并不是一件容易的事,我们知道 Internet是一个非常复杂的计算机环境,有PC,有工作站,有MAC,有大型机,据统计连接在Internet上的计算机已有上千万台,而这些计算机可能运行不同的操作系统,有运行Unix的服务器,也有运行Dos、Windows的PC机和运行MacOS的苹果机等等,而各种操作系统之间的文件交流问题,需要建立一个统一的文件传输协议,这就是所谓的FTP。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。
与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。
在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上载"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上载"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上载(下载)文件。
使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可上载或下载文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。
匿名FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。系统管理员建立了一个特殊的用户ID,名为anonymous, Internet上的任何人在任何地方都可使用该用户ID。
通过FTP程序连接匿名FTP主机的方式同连接普通FTP主机的方式差不多,只是在要求提供用户标识ID时必须输入anonymous,该用户ID的口令可以是任意的字符串。习惯上,用自己的E-mail地址作为口令,使系统维护程序能够记录下来谁在存取这些文件。
值得注意的是,匿名FTP不适用于所有Internet主机,它只适用于那些提供了这项服务的主机。
当远程主机提供匿名FTP服务时,会指定某些目录向公众开放,允许匿名存取。系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名FTP主机都允许用户从其下载文件,而不允许用户向其上载文件,也就是说,用户可将匿名FTP主机上的所有文件全部拷贝到自己的机器上,但不能将自己机器上的任何一个文件拷贝至匿名FTP主机上。即使有些匿名FTP主机确实允许用户上载文件,用户也只能将文件上载至某一指定上载目录中。随后,系统管理员会去检查这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载,利用这种方式,远程主机的用户得到了保护,避免了有人上载有问题的文件,如带病毒的文件。
作为一个Internet用户,可通过FTP在任何两台Internet主机之间拷贝文件。但是,实际上大多数人只有一个Internet帐户,FTP主要用于下载公共文件,例如共享软件、各公司技术支持文件等。 Internet上有成千上万台匿名FTP主机,这些主机上存放着数不清的文件,供用户免费拷贝。实际上,几乎所有类型的信息,所有类型的计算机程序都可以在Internet上找到。这是Internet吸引我们的重要原因之一。
匿名FTP使用户有机会存取到世界上最大的信息库,这个信息库是日积月累起来的,并且还在不断增长,永不关闭,涉及到几乎所有主题。而且,这一切是免费的。
匿名FTP是Internet网上发布软件的常用方法。Internet之所以能延续到今天,是因为人们使用通过标准协议提供标准服务的程序。像这样的程序,有许多就是通过匿名FTP发布的,任何人都可以存取它们。
Internet中的有数目巨大的匿名FTP主机以及更多的文件,那么到底怎样才能知道某一特定文件位于哪个匿名FTP主机上的那个目录中呢?这正是Archie服务器所要完成的工作。Archie将自动在FTP主机中进行搜索,构造一个包含全部文件目录信息的数据库,使你可以直接找到所需文件的位置信息。
Web 服务是一种可以用来解决跨网络应用集成问题的开发模式,这种模式为实现“软件作为服务”提供了技术保障。而“软件作为服务”实质上是一种提供软件服务的机制,这种机制可以在网络上暴露可编程接口,并通过这些接口来共享站点开放出来的功能。
从技术角度来讲,Web 服务实现了最广泛的应用软件集成,弥补了传统软件开发模型的限制。Web 服务产生之前,在网络上提供对象服务通常要采用DCOM(Distributed COM)或CORBA。这两种技术各有特点,也各自有相当广泛的应用。前者运行在Windows操作系统上,后者主要运行在UNIX系统上,都有着相当悠久的历史。
从概念层次上讲,二者具有相近的结构,都可以让客户软件实例化分布在网络上远端的对象,并最终访问对象服务。但是,在具体实现机制上,这两种方案有许多不同。比如在通信协议方面,DCOM采用的是RPC协议而CORBA采用的是IIOP协议。另外,对于客户端程序而言,访问提供服务对象的方法也是大相径庭,前者通过客户端代理(proxy),经过RPC通道后访问服务端的存根(stub)后才可以最终访问到对象;而后者必须先通过客户端的存根,然后经过IIOP访问服务端的骨架(skeleton)才能最终访问到对象。两种模式分别如图9-1和9-2所示。
图9-1 DCOM方案
正是因为两种分布式对象方案各自为政,所以它们只能被用来开发紧耦合类型的Web分布式应用系统。所谓紧耦合,就是指客户端必须按照特定的规范去访问服务端提供的服务,而这种规范只在一个有限的范围内通用。
图9-2 CORBA方案
为了可以在整个因特网中实现对服务的自由访问,有必要提供一种崭新的模式或信息交换手段来达到这个目的。于是,微软提出了Web 服务。
Web 服务的主要特点之一是,客户端访问Web 服务只需要通过因特网标准协议,如HTTP或XML,以及SOAP,不需要专门的协议,如RPC或IIOP。因为HTTP协议和XML都是与平台无关的标准协议,因此,可以被任何主流操作系统正确理解和解释。
另外,更为关键的特性是,Web 服务可以被XML语言进行详尽的描述。这就是说,提供Web服务的站点可以提供一个(或多个)该站点可以对外提供服务的描述文件,这个文件的内容可以被访问者理解。更进一步说,就是客户端可以从网络上直接得到代码!
也许举个例子能更清楚地说明问题。假设开发人员需要搭建一个商务网站,这个网站需要一个验证客户合法身份的功能。为了实现这个功能,下面分别描述了可以采用的办法。
由开发人员自己编写安全验证所需的全部代码。这样做显然不现实,一个安全验证程序涉及到诸多专业知识,并需要相当长的时间才能够完成。
购买这段程序(通常是一个ActiveX组件)。在收到组件之后,首先将组件注册在自己的机器上,然后根据组件类型库产生接口文件。在实际编程中就可以使用这个接口文件来访问组件服务。很明显,这种方式在目前使用得最为广泛。
有了Web 服务,情况就不同了,只需要在自己的程序中通过访问某个服务的URL地址,得到一份XML描述,并使用这个描述文件产生一个接口文件。然后,在实际编程中,只需要通过这个接口文件来访问服务就可以了。一定要注意,这个服务可不是运行在我们机器上的,是运行在因特网上URL地址所指向的地方。
如果这个网站需要更多的功能,而这些功能在一些网站上已经被开发出来,并以各种方式(免费或收费)公开出来供所有需要它们的开发人员来使用,那么,尽量使用它们好了。当然,如果开发人员所在的公司,也想成为Web 服务提供者的话,同样可以轻松地将他们编写的Web 服务在网络上公布出来,供大家使用。
与紧耦合服务概念相对,由于Web 服务具备通信协议标准性和服务自描述性,所以,使用Web 服务可以开发出松耦合的分布式应用程序来。这也是Web 服务要实现的最根本的设计目标。Web 服务的体系如图9-3所示。
J. http服务器和web服务器是同一个服务器二者什么区别和联系一定采纳
http服务器和web服务器不是同一个服务器,联系:两者都是用来处理http请求,并根据http请求返回响应数据的服务器,区别如下:
一、指代不同
1、http服务器:是Apache软件基金会的一个开放源代码的网页服务器。
2、web服务器:也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。
二、功能不同
1、http服务器:可以在大多数电脑操作系统中运行,由于其具有的跨平台性和安全性,被广泛使用。
2、web服务器:可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response),例如送回一个HTML页面。
三、特点不同
1、http服务器:快速、可靠并且可通过简单的API扩展,Perl/Python解释器可被编译到服务器中,可以创建一个每天有数百万人访问的Web服务器。
2、web服务器:Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。