精华内容
下载资源
问答
  • 主流的Web应用程序平台
    千次阅读
    2017-09-06 20:15:40

    主流的Web应用程序平台

    动态网站应用程序平台的搭建需要使用Web服务器发布网页,而Web服务器软件又需要安装在操作系统上,并且动态网站都需要使用脚本语言对服务器端进行编程,所以也要在同一个服务器中为Web服务器捆绑安装一个应用程序服务器,用于解析服务器端的脚本程序。另外,现在开发的动态网站都是基于数据库的,需要将网站内容存储在数据库中,使用也要为网站选择一款合适的数据库管理软件。这样,一个动态网站服务器平台的最少组合包括:操作系统+Web服务器+应用服务器+数据库。网站开发平台中的每个组件都有多种可以选择的软件,例如,操作系统可以使用UNIX、Linux、Windows等,根据不同的像ASP、JSP和PHP等脚本语言选择对应的应用服务器,数据库和Web服务器更是很多。使用搭建一个优秀的网站服务器平台往往要根据企业的需要而定,有时甚至由个人爱好需要决定,当然更要考虑部署费用、安全机制、性能及管理维护等因素。

     

    Web应用程序开发平台对比分析

    目前,网站服务器平台比较常见的有ASP.NET、JavaEE和LAMP三种:ASP.NET的服务器端操作系统时使用微软的Windows,并且需要按照微软的IIS网站服务器,数据库管理系统通常是使用微软的SQL Server,而服务器端编程语言也是使用微软的产品ASP技术,就是ASP.NET动态网站软件开发平台;JavaEE的服务器端操作系统使用UNIX,并在UNIX操作系统上按照Tomcat或Webblogic网站服务器,数据库管理系统使用Oracle数据库,服务器端编程语言使用Sun公司的JSP技术,就是JavaEE动态网站软件开发平台;LAMP的服务器端操作系统使用开源的系统Linux,在Linux操作系统上安装自由软件Apache网站服务器,数据库管理系统也是采用开源的MySQL软件,服务器端脚本编程语言又是使用开源软件PHP技术,就是LAMP动态网站软件开发平台。

     

    1.ASP.NET

    ASP.NET是Windows Server+IIS+SQL Server+ASP组合,所有组成部分都是基于微软的产品。它的优点是兼容性比较好,安装和使用比较方便,不需要太多的配置。而且简单易学,拥有很大的用户群,也有大量的学习文档。还有就是开发工具强大而多样,易用、简单、人性化。ASP.NET也有很多不足,由于Windows操作系统本身存在着问题,ASP.NET的安全性、稳定性、跨平台都会因为与Windows NT的捆绑而显现出来。使用ASP.NET平台开发的网站软件,外部攻击时可以取得很高的权限而导致网站瘫痪或者数据丢失。并且无法实现跨操作系统的应用,也不能完全实现企业级应用的功能,不适合开发大型系统,而且Windows和SQL Server软件的价格也不低,平台建设成本比较高。

     

    2.JavaEE开发平台

    JavaEE是一个开放的、基于标准的开发和部署的平台,基于Web的、以服务端计算为核心的、模块化的企业应用。由Sun公司领导着JavaEE规范和标准的制定,但同时很多公司如IBM、BEA也为该标准的制定贡献了很多力量。JavaEE开发架构是UNIX+Tomcat+Oracle+JSP的组合,是一个非常强大的组合,环境搭建比较复杂,同时价格也不菲。Java的框架利于大型的协同编程开发,系统易维护、可复用性比较好。它特别适合企业级应用系统开发,功能强大,但要难学得多,另外开发速度比较慢,成本也比较高,不适合快速开发和对成本要求比较低的中小型应用系统。

     

    3.LAMP开发平台

    LAMP是Linux+Apache+MySQL+PHP的标准缩写。Linux操作系统,网站服务器Apache、数据库MySQL和PHP程序模块的连接,形成了一个非常优秀的网站数据库的开发平台,是开源免费的自由软件,与JavaEE架构和ASP.NET架构形成了三足鼎立的竞争态势,是较受欢迎的开源软件网站开发平台。LAMP组合具有简便性、低成本、高安全性、开发速度快和执行灵活等特点,使得其在全球发展速度较快,应用较广,越来越多的企业将平台架构在LAMP之上。不管是否是专业人士,皆可以利用LAMP平台工具来设计和架设网站及开发应用程序,目前主流的网站都在使用LAMP作为自己的系统运行平台。

    更多相关内容
  • Web应用程序安全原理(Web服务面临的威胁)

    千次阅读 多人点赞 2022-01-29 14:25:16
    WEB应用程序原理(概述)_xiaofengdada的博客-CSDN博客 WEB应用程序的开发和研究_xiaofengdada的博客-CSDN博客 一、Web服务器的组成 首先来看操作系统和web服务器应用程序,对于绝大多数的使用者而言,不会去...

    WEB应用程序原理(概述)_xiaofengdada的博客-CSDN博客

    WEB应用程序的开发和研究_xiaofengdada的博客-CSDN博客


    一、Web服务器的组成

    首先来看操作系统和web服务器应用程序,对于绝大多数的使用者而言,不会去开发操作系统和web服务器应用程序,只会在现有的操作系统中进行选择,而web服务的建设者只负责安装和部署这两个部分。由于web服务的建设者既不熟悉它们的内部机制,也不能改变内部机制,所以这些因素归结为外部环境因素。

    相对于web应用程序而言,建设者可以获取对web应用程序的访问权,也可以对其改动,所以将web应用程序和语言解释器归结为内部代码因素


     二、外部环境因素

    1、操作系统漏洞

    目前大部分的WEB服务器使用的是windows和Linux作为操作系统,下图是官方发布的关于windows server 2012的漏洞,这些漏洞可在CVE官方站点查到

    Windows server 2012漏洞数量逐年统计的柱状图如下:

    2013年虽然只有52个漏洞,但其中有两个高危漏洞CVE-2013-3175和CVE-2013-3195被评为10分的漏洞。2017年的一个针对windows高危漏洞cve-7-0146漏洞至今仍然有作用,这个漏洞还未完全解决,新的针对linux的CVE-2017-7494漏洞就出现了。

    2.WEB服务器应用程序的漏洞

    web应用程序除了运行在windows操作系统的IIS,还有可以跨平台的Apache,Nigix,Jboss以及Tomcat这些应用程序都存在或多或少漏洞

    下图给出了2000-2019年Tomcat存在的漏洞

    如果按照漏洞类型进行划分,结果如下图:

    使用zommEye在互联网上查找使用Jboss的服务器

    ZoomEye - Cyberspace Search Engine

    3.Docker的缺陷


    三、内部代码因素

    1.常见的WEB应用程序漏洞

    目前国际上对web安全的权威参考主要来自于开放式的web应用程序安全项目(OWASP)。OWASP每隔一段时间会发布关于web应用程序的风险标准

    A1:2017-注入:注入缺陷,例如 SQL、NoSQL、OS 和 LDAP 注入,当不受信任的数据作为命令或查询的一部分发送到解释器时就会发生。攻击者的恶意数据可以诱使解释器在未经适当授权的情况下执行意外命令或访问数据。

    A2:2017-失效的身份认证:与身份验证和会话管理相关的应用程序功能经常被错误地实现,允许攻击者破坏密码、密钥或会话令牌,或者利用其他实现缺陷来暂时或永久地假设其他用户的身份。

    A3:2017-敏感数据泄露:许多 Web 应用程序和 API 没有正确保护敏感数据,例如金融、医疗保健和 PII。攻击者可能会窃取或修改此类保护不力的数据,以实施信用卡欺诈、身份盗用或其他犯罪活动。敏感数据可能会在没有额外保护的情况下受到损害,例如静态或传输中的加密,并且在与浏览器交换时需要特殊的预防措施。

    A4:2017-XML 外部实体 (XXE):许多旧的或配置不当的 XML 处理器评估 XML 文档中的外部实体引用。外部实体可用于使用文件 URI 处理程序、内部文件共享、内部端口扫描、远程代码执行和拒绝服务攻击来公开内部文件。

    A5:2017-失效的控制访问:对经过身份验证的用户可以做什么的限制通常没有得到适当的执行。攻击者可以利用这些缺陷来访问未经授权的功能和/或数据,例如访问其他用户的帐户、查看敏感文件、修改其他用户的数据、更改访问权限等。

    A6:2017-安全配置错误:安全配置错误是最常见的问题。这通常是由于不安全的默认配置、不完整或临时配置、开放云存储、错误配置的 HTTP 标头和包含敏感信息的详细错误消息造成的。不仅必须安全地配置所有操作系统、框架、库和应用程序,而且必须及时修补/升级它们。

    A7:2017-跨站脚本攻击:每当应用程序在新网页中包含不受信任的数据而未经适当验证或转义,或使用可创建 HTML 或JavaScript。XSS 允许攻击者在受害者的浏览器中执行脚本,这些脚本可以劫持用户会话、破坏网站或将用户重定向到恶意站点。

    A8:2017-不安全的反序列化:不安全的反序列化通常会导致远程代码执行。即使反序列化缺陷不会导致远程代码执行,它们也可以被用来执行攻击,包括重放攻击、注入攻击和提权攻击。

    A9:2017-使用具有已知漏洞的组件:组件(例如库、框架和其他软件模块)以与应用程序相同的权限运行。如果利用易受攻击的组件,此类攻击可能会导致严重的数据丢失或服务器接管。使用具有已知漏洞的组件的应用程序和 API 可能会破坏应用程序防御并引发各种攻击和影响。

    A10:2017-不足的日志记录和监控:日志记录和监控不足,再加上与事件响应的集成缺失或无效,允许攻击者进一步攻击系统,保持持久性,转向更多系统,并篡改、提取或破坏数据。大多数违规研究表明检测违规的时间超过 200 天,通常由外部方而不是内部流程或监控检测到

    2、web渗透测试程序

    目前为了让web程序开发者和安全研究人员对各种漏洞的研究有入口,世界上很多安全组织都开发了用于教学和实践的web测试程序。

    DVWA全称是Damn Vulnerable Web App,是一个用PHP编写而成的web漏洞测试程序,其中使用了SQL。这个web漏洞测试程序提供了暴力破解、命令执行、CSRF、文件包含、SQL注入、XSS等web漏洞测试环境。本次教学将使用这个程序。

    还有一个测试程序叫WebGoat是由OWASP设计的web应用程序漏洞测试程序。主要运行在装有JAVA的虚拟机平台上,当前提供了30多个训练课程,包括跨站脚本攻击、访问控制、线程安全、操作隐藏字段、弱会话Cookie、SQL盲注、数字型SQL注入、字符串型SQL注入、web服务、open Authentication 失效、危险的HTML注释等。

    另外比较常用的WEB漏洞测试程序还有OWAP Bricks、SQLi-Labs、multilidaemutillidate、hackxorhackxor、BodgeItBodgeIt、ExploitB/exploit.co.il、XSSeducation、Hackademic等

    展开全文
  • WEB服务器、应用程序服务器、HTTP服务器有何区别? IIS、Apache、Tomcat、Weblogic、WebSphere都各属于哪种服务器? 这些问题困惑了很久,今天终于梳理清楚了: Web服务器的基本功能就是提供Web信息浏览服务...

    WEB服务器、应用程序服务器、HTTP服务器有何区别?

    IIS、Apache、Tomcat、Weblogic、WebSphere都各属于哪种服务器?

     

    这些问题困惑了很久,今天终于梳理清楚了:

     

    Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL。与客户端的网络浏览器配合。因为Web服务器主要支持的协议就是HTTP,所以通常情况下HTTP服务器和WEB服务器是相等的(有没有支持除HTTP之外的协议的web服务器,作者没有考证过),说的是一回事。 

     

    应用程序服务器(简称应用服务器),我们先看一下微软对它的定义:"我们把应用程序服务器定义为“作为服务器执行共享业务应用程序的底层的系统软件”。 就像文件服务器为很多用户提供文件一样,应用程序服务器让多个用户可以同时使用应用程序(通常是客户创建的应用程序)"

     

    通俗的讲,Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑 (business logic)。

     

    以Java EE为例,Web服务器主要是处理静态页面处理和作为 Servlet容器,解释和执行servlet/JSP,而应用服务器是运行业务逻辑的,主要是EJB、 JNDI和JMX API等J2EE API方面的,还包含事务处理、数据库连接等功能,所以在企业级应用中,应用服务器提供的功能比WEB服务器强大的多。

     

    以这样的定义,IIS、Apache、Tomcat都可以属于Web服务器,Weblogic、WebSphere都属于应用服务器。 

     

    Apache:在Web服务器中,Apache是纯粹的Web服务器,经常与Tomcat配对使用。它对HTML页面具有强大的解释能力,但是不能解释嵌入页面内的服务器端脚本代码(JSP/Servlet)。

     

    Tomcat:早期的Tomcat是一个嵌入Apache内的JSP/Servlet解释引擎Apache+Tomcat就相当于IIS+ASP。后来的Tomcat已不再嵌入Apache内,Tomcat进程独立于Apache进程运行。 而且,Tomcat已经是一个独立的Servlet和JSP容器,业务逻辑层代码和界面交互层代码可以分离了。因此,有人把Tomcat叫做轻量级应用服务器。 

     

    IIS:微软早期的IIS,就是一个纯粹的Web服务器。后来,它嵌入了ASP引擎,可以解释VBScript和JScript服务器端代码了,这时,它就可以兼作应用服务器。当然,它与J2EE应用服务器根本无法相比,但是,从功能上说,从原理上说,它勉强可以称之为应用服务器。确切地说,它是兼有一点应用服务器功能的Web服务器。 

     

    综上:Apache是纯粹的web服务器,而Tomcat和IIS因为具有了解释执行服务器端代码的能力,可以称作为轻量级应用服务器或带有服务器功能的Web服务器。Weblogic、WebSphere因为能提供强大的J2EE功能,毫无疑问是绝对的应用服务器。对于处于中间位置的Tomcat,它可以配合纯Web服务器Apache一起使用,也可以作为应用服务器的辅助与应用服务器一起部署

     

    一、Tomcat与应用服务器

     

    到目前为止,Tomcat一直被认为是Servlet/JSP API的执行器,也就所谓的Servlet容器。然而,Tomcat并不仅仅如此,它还提供了JNDI和JMX API的实现机制。尽管如此,Tomcat仍然还不能算是应用服务器,因为它不提供大多数J2EE API的支持。

     

    很有意思的是,目前许多的应用服务器通常把Tomcat作为它们Servlet和JSP API的容器。由于Tomcat允许开发者只需通过加入一行致谢,就可以把Tomcat嵌入到它们的应用中。遗憾的是,许多商业应用服务器并没有遵守此规则。

     

    对于开发者来说,如果是为了寻找利用Servlet、JSP、JNDI和JMX技术来生成Java Web应用的话,选择Tomcat是一个优秀的解决方案;但是为了寻找支持其他的J2EE API,那么寻找一个应用服务器或者把Tomcat作为应用服务器的辅助,将是一个不错的解决方案;第三种方式是找到独立的J2EE API实现,然后把它们跟Tomcat结合起来使用。虽然整合会带来相关的问题,但是这种方式是最为有效的。。

     

    二、Tomcat与Web服务器

     

    Tomcat是提供一个支持Servlet和JSP运行的容器。Servlet和JSP能根据实时需要,产生动态网页内容。而对于Web服务器来说, Apache仅仅支持静态网页,对于支持动态网页就会显得无能为力;Tomcat则既能为动态网页服务,同时也能为静态网页提供支持。尽管它没有通常的Web服务器快、功能也不如Web服务器丰富,但是Tomcat逐渐为支持静态内容不断扩充。大多数的Web服务器都是用底层语言编写如C,利用了相应平台的特征,因此用纯Java编写的Tomcat执行速度不可能与它们相提并论。

     

    一般来说,大的站点都是将Tomcat与Apache的结合,Apache负责接受所有来自客户端的HTTP请求,然后将Servlets和JSP的请求转发给Tomcat来处理。Tomcat完成处理后,将响应传回给Apache,最后Apache将响应返回给客户端。

     

    而且为了提高性能,可以一台apache连接多台tomcat实现负载平衡。 

     

    关于WEB服务器、应用程序服务器的更详细区别可以参考下面这篇文章: 

     

    通俗的讲,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)技术。

     

    一个例子 

     

    例如,设想一个在线商店(网站)提供实时定价(real-time pricing)和有效性(availability)信息。这个站点(site)很可能会提供一个表单(form)让你来选择产品。当你提交查询 (query)后,网站会进行查找(lookup)并把结果内嵌在HTML页面中返回。网站可以有很多种方式来实现这种功能。我要介绍一个不使用应用程序服务器 的情景和一个使用应用程序服务器的情景。观察一下这两中情景的不同会有助于你了解应用程序服务器的功能。

     

    情景1:不带应用程序服务器的Web服务器 

     

    在此种情景下,一个Web服务器独立提供在线商店的功能。Web服务器获得你的请求(request),然后发送给服务器端(server- side)可以处理请求(request)的程序。此程序从数据库或文本文件(flat file,译者注:flat file是指没有特殊格式的非二进制的文件,如properties和XML文件等)中查找定价信息。一旦找到,服务器端(server-side)程序把结果信息表示成(formulate)HTML形式,最后Web服务器把会它发送到你的Web浏览器。

     

    简而言之,Web服务器只是简单的通过响应(response)HTML页面来处理HTTP请求(request)。

     

    情景2:带应用程序服务器的Web服务器 

     

    情景2和情景1相同的是Web服务器还是把响应(response)的产生委托(delegates)给脚本(译者注:服务器端 (server-side)程序)。然而,你可以把查找定价的商业逻辑(business logic)放到应用程序服务器上。由于这种变化,此脚本只是简单的调用应用程序服务器的查找服务(lookup service),而不是已经知道如何查找数据然后表示为(formulate)一个响应(response)。这时当该脚本程序产生HTML响应(response)时就可以使用该服务的返回结果了。

     

    在此情景中,应用程序服务器提供(serves)了用于查询产品的定价信息的商业逻辑。(服务器的)这种功能(functionality)没有指出有关显示和客户端如何使用此信息的细节,相反客户端和应用程序服务器只是来回传送数据。当有客户端调用应用程序服务器的查找服务(lookup service)时,此服务只是简单的查找并返回结果给客户端。

     

    通过从响应产生(response-generating)HTML的代码中分离出来,在应用程序之中该定价(查找)逻辑的可重用性更强了。其他的客户端,例如收款机,也可以调用同样的服务(service)来作为一个店员给客户结帐。相反,在情景1中的定价查找服务是不可重用的因为信息内嵌在 HTML页中了。

     

    总而言之,在情景2的模型中,在Web服务器通过回应HTML页面来处理HTTP请求(request),而应用程序服务器则是通过处理定价和有效性(availability)请求(request)来提供应用程序逻辑的。

     

    警告(Caveats)

     

    现在,XML Web Services已经使应用程序服务器和Web服务器的界线混淆了。通过传送一个XML有效载荷(payload)给服务器,Web服务器现在可以处理数据和响应(response)的能力与以前的应用程序服务器同样多了。

     

    另外,现在大多数应用程序服务器也包含了Web服务器,这就意味着可以把Web服务器当作是应用程序服务器的一个子集(subset)。虽然应用程序服务器包含了Web服务器的功能,但是开发者很少把应用程序服务器部署(deploy)成这种功能(capacity)(译者注:这种功能是指既有应用程序服务器的功能又有Web服务器的功能)。相反,如果需要,他们通常会把Web服务器独立配置,和应用程序服务器一前一后。这种功能的分离有助于提高性能(简单的Web请求(request)就不会影响应用程序服务器了),分开配置(专门的Web服务器,集群(clustering)等等),而且给最佳产品的选取留有余地。

    展开全文
  • Jsp之一 WEB应用程序概述

    千次阅读 2016-05-27 18:52:16
    C/S、B/S应用程序介绍 Ø C/S应用程序介绍 C/S (Client/Server)结构,即客户机和服务器结构。它是常说的胖客户端软件体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来...

    C/S、B/S应用程序介绍

    Ø       C/S应用程序介绍

    C/S (Client/Server)结构,即客户机和服务器结构。它是常说的胖客户端软件体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构。比如网络游戏就是用C/S模式开发的,想玩网络游戏必须在电脑机client上装上一个客户端软件,而且很多的业务处理都是在客户端上实现的。通常情况下C/S模式对网络的依赖性不强。

    Ø       C/S模式优劣

    (1)、应用服务器运行数据负荷较轻。
    最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。

    (2)、C/S架构的劣势是高昂的维护成本且投资大。
    首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。
    其次,传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。

    Ø       B/S应用程序介绍

    B/S即Browser/Server。B/S基本就是 Browse-WebService-DB这样的架构。也就是通常说的瘦客户端。这个结构中几乎所有的服务就在服务应用端来处理。好处就是对客户端要求不高,就一个浏览器一般就可以,而且便于进行权限验证。

     

    Ø       B/S模式优劣

    (1)、维护和升级方式简单。

    目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。

    (2)、成本降低,选择更多。
    大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来。

    (3)、应用服务器运行数据负荷较重。
    由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器端(Server)完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。

    应用程序服务器与WEB服务器介绍

    我们通常说的服务器实际上一台有特殊配置和功效的计算机,是一台机器。

    而我们这里提到的应用程序服务器或web服务器是指配属在服务器机器上的一个软件组织使其能够完成一些特殊的功能。在学习本课题之前同学们需要对服务器与普通pc(个人电脑)机的区别有一个了解。

    Ø       PC机与服务器有哪些区别:

    1.       PC机和专业服务器是完全是两种东西,硬件不同,当然驱动也不可能相同。比如说对服务器主板而言,最重要的是高可靠性和稳定性,其次才是高性能。因为大多数的服务器都要满足每天24小时、每周7天的满负荷工作要求。价格方面自然要贵很多,当然PC也有20000元以上的配置,这样的PC也可以做服务器,但是不是真正的服务器。

    2.       由于服务器数据处理量很大,需要采用多CPU并行处理结构,即一台服务器中安装2、4、8等多个CPU(必需是偶数个);对于服务器而言,多处理器可用于数据库处理等高负荷高速度应用;而对于工作站,多处理器系统则可以用于三维图形制作和动画文件编码等单处理器无法实现的高处理速度应用。为适应长时间,大流量的高速数据处理任务,在内存方面,服务器主板能支持高达十几GB甚至几十GB的内存容量,并且需要有很高的可靠性。

    Ø           WEB服务器

    Web服务器是专门针对http协议而实现的一种软件机制,我们可以将一个web服务器安装在一个服务器上,再将我们的站点部署在这个web服务器中,这样我们在客户端通过浏览器想此站点发出一些请求,web服务器就可以收到我们的请求,并进过一定的处理给客户端发出一些响应。Web服务器在处理一些静态的http请求时效率非常之高也就是说更加专业。常用的web服务器软件有Apache等。

    Ø       应用程序服务器

           根据我们的定义,作为应用程序服务器,它通过各种协议,可以包括http,把商业逻辑暴露给客户端应用程序。web服务器主要是处理向浏览器发送html以供浏览,而应用程序服务器提供访问商业逻辑的途径以供客户端应用程序使用。应用程序服务器使用此商业逻辑就象你调用对象的一个方法 (或过程语言中的一个函数)一样。也就是说我们的站点中还部署了用c# 或java语言开发而成的可执行文件这些文件可能是为了完成特殊的功能或许是对数据库的一些操作,这时候web服务器就会使用应用程序服务器,而后者就会调用用高级语言编写的可执行文件,之后将处理的结果转换为能够web服务器可识别的http协议下的语言返回给客户端。常见的应用程序服务器有大家熟悉的tomcat 、jboss等等。

           这并不是说应用程序服务器就不能够解析http协议,他们当然有这个功能,想tomcat完全可以解析html文件,只是其在响应静态页面的时候显得不是很专业而已。

           虽然应用程序服务器是个综合性人才,但我们通常组建服务器的时候还是使用web服务器与应用程序服务器的综合配置,这样无论是在效率上还是安全上都是很好的选择。

    Apache、tomcat及IIS的联系

    Ø       Apache

    Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。Apache对Linux的支持相当完美。它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、 Windows、Linux系统平台上)以及它的可移植性等方面。Apache是一个web服务器环境程序,可以作为web服务器使用。不过只支持静态网页,如(asp,php,cgi,jsp)等动态网页的就显得无能为力。

    Ø       Tomcat

    Tomcat是一个开放源代码、运行servlet和JSP Web应用软件的基于Java的Web应用软件容器。TomcatServer是根据servlet和JSP规范进行执行的,因此我们就可以说Tomcat Server也实行了Apache-Jakarta规范且比绝大多数商业应用软件服务器要好。Tomcat是一个应用程序服务器,是一个能够很好解析java语言的应用程序服务器,当然他也可以解析一些静态网页。

    Ø       IIS

    IIS是Internet InformationServices的缩写, 是由微软公司提供的基于运行MicrosoftWindows的互联网基本服务。最初是Windows NT版本的可选包,随后内置在Windows 2000、Windows XP Professional和Windows Server 2003一起发行,但在普遍使用的Windows XPHome版本上并没有IIS。

    小结

           本章主要介绍web应用程序方面的基本知识,旨在要求同学们在一些基础知识上有一个明确的认识。另外注明本书将以tomcat作为服务器软件经行讲解

    本章我们要懂得:

    1、C/S 、B/S分别表示的含义

    2、应用程序服务器与web服务器的联系

    3、Tomcat的历史及拥有的功能。
    展开全文
  • 微信小程序剖析 , 运行机制及框架原理
  • 原地址 https://www.ibm.com/developerworks/cn/cloud/library/cl-multitenantsaas/想象一下,您有一个一直在市场上出售的 web 应用程序。您了解到云基础架构中的软件即服务 (SaaS) 是行业的未来趋势。您意识到您...
  • Web应用程序中的身份验证

    千次阅读 2018-06-08 14:19:46
    原文地址:https://docs.spring.io/spring-security/site/docs/4.2.6.RELEASE/reference/htmlsingle/#authorization一个典型的Web应用程序的身份验证过程:您访问主页,然后点击链接。请求发送到服务器,并且服务器...
  • 如何使用Docker部署Go Web应用程序

    万次阅读 2016-06-13 08:54:20
    您将通过本文了解如何使用Docker部署Go Web应用程序,以及Docker如何帮您改善开发工作流和部署过程。各种规模的团队都能从本文内容中获益。
  • Tomcat如何打破双亲委派机制实现隔离Web应用的?

    千次阅读 多人点赞 2021-07-29 01:29:04
    Tomcat通过自定义类加载器WebAppClassLoader打破双亲委托,即重写了JVM的类加载器ClassLoader的findClass方法和loadClass方法,这样做的目的是优先加载Web应用目录下的类。除此之外,你觉得Tomcat的类加载器还需要...
  • docker入门(利用docker部署web应用)

    万次阅读 多人点赞 2019-05-26 10:44:15
    前言:本课程是在慕课网上学习 第一个docker化的java应用 课程时所做的笔记,供本人复习之用 目录 第一章 什么是docker 1.1 docker的发展史 1.2 docker国内应用史 1.3 什么是Docker 第二章 了解docker 2.1 ...
  • Linux常用命令 + Web程序部署

    万次阅读 多人点赞 2022-04-26 17:10:11
    文章目录Linux一、使用Xshell二、常用命令操作1、ls(罗列文件)2、cd(切换)3、pwd(查看当前目录)4、touch(创建空文件)5、cat(查看)6...15、netstat三、认识Linux中的权限四、在Linux上部署Web程序1、安装JDK...
  • `绝对路径`:你应用上的文件或目录在硬盘上真正的路径,如:URL、物理路径 例如: c:/xyz/test.txt代表了test.txt文件的绝对路径; http://www.sun.com/index.htm也代表了一个URL绝对路径; `相对路径`...
  • Web应用框架汇总

    万次阅读 2018-03-05 14:23:17
    Web应用框架(Web application framework)是一种开发框架,用来支持动态网站、网络应用程序及网络服务的开发。其类型有基于请求的和基于组件的两种框架,Web应用框架有助于减轻网页开发时共通性活动的工作负荷,...
  • 基于Python的Web开发

    万次阅读 2019-02-26 11:24:29
    它在Web应用和非Web应用中都发挥了重要的作用。比如Google的核心代码是用Python语言写的,国内著名的豆瓣网也使用Python技术。Python是脚本语言,开发代码效率高,使用第三方标准库,可以用简洁易读的代码描述强大...
  • 客户端应用程序-->网络-->web服务器-->数据库;B/S结构:三层应用系统结构,浏览器/服务器结构。浏览器-->网络-->web服务器-->数据库;C/S结构与B/S结构的区别:1、硬件...
  • IntelliJ IDEA 开发Web应用图文教程

    万次阅读 多人点赞 2017-05-27 17:47:14
    一,简介Eclipse/MyEclipse确实用起来诸多不爽,准备切换IntelliJ IDEA,本篇介绍如何配置IDEA并使用IDEA开发一个Web应用。二,软件下载与安装1,首先下载安装JDK并配置环境变量。JDK安装目录D:\Java\jdk1.7.0_79 ...
  • 第一章何谓Web应用程序 1 Web应用程序的有效利用 11 各种Web应用程序 12 Web应用程序的优点与缺点 2 Web应用程序的构造 21 Web的构造 22 从Web到Web应用程序 23 服务器端到客户端 24 客户端驱动的程序 25 服务器端...
  • 在 Docker 容器中运行应用程序

    千次阅读 2017-11-01 10:49:00
    容器web: 创建自 nginx 映像,使用 80 端口,运行于后台,实现 web 服务。 容器mailer: 该容器中运行一个 mailer 程序运行于后台,当接收到事件后会向管理员发送邮件。 容器agent: 该容器运行一个 watcher 程序,...
  • Idea ... 使其加快响应速度。 我们试着从页面中消除ViewState,使其在客户端轻量化,并且仅通过服务(Web API) ...Part I :使用Bootstrap创建一个ASP.NET Web表单移动应用程序来设计布局,将Web ...
  • 随着H5标准的发布以及推广,使得移动应用的...APP,一般认为是 mobile application,也就是移动移动应用程序。先上图 Native AppNative App是一种基于智能手机本地操作系统如iOS、Android、WP并使用原生程式编写运行
  • 构建Web应用程序结构

    千次阅读 2012-06-01 14:07:26
    构建Web应用程序结构  这里我们使用一个仅有基本功能的示例来说明EFS,此法也适用于其它相同的逻辑与设计的应用。目的是使外部用户或者内部用户能够通过安全的HTTPS通道来访问数据。这里我们需要配置一个虚拟目录...
  • 一 常见的WEB服务器和应用服务器 ... 在选择使用WEB服务器应考虑的本身特性因素有:性能、安全性、日志和统计、虚拟主机、代理服务器、缓冲服务和集成应用程序等,下面介绍几种常用的WEB服务器。  常见的w
  • C#常见的应用程序类型

    千次阅读 2020-02-04 18:15:04
    Web应用程序(Mobile应用程序) 注: Web应用程序(网上) Mobile应用程序(手机上) 一、.控制台应用程序 (运行快捷键Ctrl+F5) using 名称空间 例:using System 使用System名称空间,以便编程的简写,方便书写。 ...
  • Tomcat是一个被广泛使用的Java WEB应用服务器,下面将认识Tomcat:先来...再来了解Tomcat的安装目录结构、Tomcat配置文件、Tomcat部署Web应用程序的目录结构;最后了解Tomcat基本架构、以及Tomcat各组件的一些配置。
  • Web应用安全测试

    千次阅读 2018-08-28 17:13:41
    有时Web应用服务器除业务端口外还会开放一些默认端口(如tomcat开放的8080),这些默认端口对最终用户是不需要开放的,而且也不会用于维护,容易被攻击,本测试目的在于发现服务器上未使用的Web端口。 ...
  • 【深入理解计算机系统】程序是如何运行

    万次阅读 多人点赞 2017-11-05 20:53:14
    程序是如何运行的现代计算机存储和处理的信息以二值信号表示,程序对于计算机而言就是一串二进制数据流,以流水线的方式进入CPU进行运算。主要在;CPU与内存之间进行数据传递。本文将从程序源码的结构与表现形式开始...
  • 7.1 配置任意目录下的web应用程序 240 7.2 war文件 242 7.3 tomcat中servlet的另一种运行方式 244 7.4 与servlet配置相关的元素 247 7.4.1 [servlet]元素及其子元素 247 7.4.2 [servlet-mapping]元素及其子元素...
  • PWA基于通过先进的技术为Web应用带来接近本地应用的使用体验。基于PWA的Web应用从一个Web页面变为一个沉浸式的顶层应用,并且时刻保持着对网络的低依赖性。
  • HTML5高级程序设计(引领下一代Web开发潮流)

    千次下载 热门讨论 2011-01-08 10:21:24
    10.2.2 搭建简单的离线应用程序 203 10.2.3 支持离线行为 204 10.2.4 manifest文件 204 10.2.5 applicationcache api 205 10.3 使用html5离线web应用构建应用 206 10.3.1 创建记录资源的manifest文件 208 10.3.2 ...
  • Web安全基础知识 1

    千次阅读 多人点赞 2021-02-22 10:42:13
    是一种连接软件组件和应用的计算机软件,它包括一切服务,一边运行在一台或多台机器上的软件通过网络进行交互,该技术所提供的互操作性推动了一致分布式体系架构的演进,该架构通常用于支持简化那些复杂的分布式程序...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 336,917
精华内容 134,766
关键字:

web应用程序的运行机制是