什么是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 duties)包括安全(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服务器。
web前端全栈开发学习路线:
第一阶段
HTML的学习:超文本标记语言(HyperText Mark-up Language 简称HTML)是一个网页的骨架,无论是静态网页还是动态网页,最终返回到浏览器端的都是HTML代码,浏览器将HTML代码解释渲染后呈现给用户。因 此,我们必须掌握HTML的基本结构和常用标记及属性。技术点:HTML 快速入门、文本、图像、链接、表格、列表、表单、框架;类型为:PC端网站布局,WebApp页面布局HTML5。
第二阶段
CSS的学习: CSS是英文Cascading Style Sheets的缩写,叫做层叠样式表,是能够真正做到网页表现与内容分离的一种样式设计语言。相对于传统HTML的表现而言其样式是可以复用的,这样就极大地提高了我们开发的速度,降低了维护的成本。技术点:CSS 基础语法、框模型与背景、文本格式化、表格、显示与定位、动画、过渡、2D/3D 转换、CSS 优化以及HTML5新增的元素与属性、 、表单域增强元素、CSS3选择器、 文字字体相关样式、 CSS3位移与变形处理、 CSS3 2D转换与过度动画、 CSS3 3D转换与关键帧动画、 弹性盒模型、 媒体查询 、 响应式设计,至此我们就可以顺利完成“一幢楼房”的建设。还可以对“楼房”进行更深一步的“装修”,并且让它看起来更“豪华”一些。
第三阶段
JavaScript、jQuery 的学习:Javascript:基础语法、json、神奇的Array、常用Javascript类、JS的调试技巧;JS Dom:节点的获取、元素的操作、节点创建、事件与冒泡、项目案例;JQuery:隐式迭代、选择器、JQuery如何实现JSDom中的效果、JQuery EasyUI;同时注意:面向对象进阶与 ES5/ES6里面的设计模式(观察者模式等)、变量对象与活动对象、作用域链、闭包以及JavaScript工具库里面各种类库使用DOM库、AJAX库、原型和继承库。
第四阶段
HTTP协议、Ajax进阶与后端开发了解: HTTP(s)协议详解、 Ajax进阶、跨域与 Defered、 PHP基础、 MySQL基础、 服务器端组件原理、HTTP请求(GET、POST、PUT、DELETE等)、HTTP响应、Cookie原理、Session原理、Restful协议 、 接口的定义 、Mock数据 、Restful 、前后端联调 、前端安全(XSS,CSRF,JS注入) 前端工程化与模块化应用:Gulp、Webpack 、NPM、Git/SVN、CommonJS 、AMD 、 CMD 、 ES6模块化
第五阶段
至此我们就可以用自己的学到的技术开启新世界的大门啦,去做项目和功能开发:Touch端必然需要清楚的点: Canvas 基础知识 、 绘制矩形、圆弧、线段、曲线、渐变与图像、 Canvas 图表绘制案例、 localStorage、sessionStorage 与离线缓存、 animatecss、 Yo/Mui、 touchjs、 zeptojs、 swiper、 iScroll;微信场景: WeUI 、 Swiper animate 在微信场景项目中的使用、 常见的页面布局、 常见的交互与动画;应用 Vuejs开发 WebApp:Vuejs基础、 模块化、 单文件组件、 路由、 与服务器通信、 状态管理、 单元测试、 生产发布
第六阶段
Hybrid,ReactNative:创建项目、创建小程序实例与创建、页面框架、组件、API及工具详解;React Native介绍、BS架构程序、异步执行与加载、兼容通用标准和扩展性;混合技术:Cordova/Phone gap、嵌入客户端(iOS、Android)、微信服务号接口(JSSDK)
Web的工作模式是B/S模式的,(Browser/Server结构)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
扩展资料
计算机网络的工作模式有对等模式和客户机/服务器模式两种。
1、对等工作模式
对等工作模式(Peer to Peer)保证一个网络内部的各台计算机没有主次之分,完全平等地相互通信,从而实现共享文件和共享打印等功能。
2、客户机/服务器工作模式
在客户机/服务器(Client/Server)工作模式中,由一台服务器提供全部服务功能,其它计算机则处于从属的地位(统称为客户机)。客户机可以向服务器提出请求,根据外部表现能力,服务器又分为文件服务器、数据库服务器、应用服务器等。
Web Server中文名称叫网页服务器或web服务器。WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。
Web服务器可以解析HTTP协议。当Web服务器接收到一个HTTP请求,会返回一个HTTP响应,例如送回一个HTML页面。为了处理一个请求,也可把动态响应的回应给一些其它的程序例如CGI脚本处理。无论它们其中的详细过程是怎么样的,这些服务器端的程序通常产生一个HTML来相应客户端发出的请求,让浏览器可以浏览。
通俗的讲,Web服务器传送页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用的方法。确切一点,你可以说:Web服务器专门处理HTTP请求。
在UNIX和LINUX平台下使用最广泛的免费是APACHEserver,而Windows平台NT/2000/2003使用IIS的WEBserver。
IIS是一种Web服务组件,当中包含Webserver、FTPserver、NNTPserver和SMTPserver,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面。
apache仍然是世界上用的最多的Webserver,市场占有率达60%左右。它的成功之处主要在于它的源码开放、有一支开放的开发队伍、支持跨平台的应用(能够执行在差点儿全部的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。
当然常用的还有这些webserver的例如Tomcat BEA WebLogic IBM WebSphere有兴趣的话自己可以查阅这几个webserver的资料
0条评论