Web Application

Web Application


在计算中,web应用或web应用是客户端 - 服务器软件应用,其中客户端(或用户接口)在web浏览器中运行。常见的网络应用包括网络邮件,在线零售,在线拍卖,维基,即时消息服务和许多其他功能。


内容
    
1定义和类似术语
        
1.1移动Web应用程序
    
2历史
    
3接口
    
4结构
    
5业务使用
    
6编写Web应用程序
    
7应用

1.定义和类似术语


任何类型的动态Web页面和“Web应用程序”之间的一般区别是不清楚的。最可能被称为“web应用”的网站是具有与桌面软件应用或移动应用类似的功能的网站。HTML5引入了明确的语言支持,使得作为网页加载的应用程序,但是可以在本地存储数据,并在离线时继续运行。

单页应用程序更像应用程序,因为它们拒绝在具有不同URL的不同页面之间移动的更典型的web范例。单页框架(如Sencha Touch和AngularJS)可能用于加快移动平台的Web应用程序开发速度。


1.1移动Web应用程序


    在制作网络应用程序时,有多种方法可以定位移动设备:
    
响应式网页设计可用于制作网络应用程序 - 无论是在小屏幕上可见的常规网站还是单页应用程序,并且可与触摸屏一起使用。
    
原生应用程序或“移动应用程序”直接在移动设备上运行,就像传统的软件应用程序直接在台式计算机上运行,​​没有Web浏览器(并且可能不需要互联网连接);这些通常用Java(对于Android设备)或Objective C或Swift(对于iOS设备)编写。最近,像React Native和Flutter等框架允许使用除标准母语之外的语言为两个平台开发本地应用程序。
    
混合应用程序在本机应用程序中嵌入了一个移动网站,可能使用Apache Cordova和Ionic或Appcelerator Titanium等混合框架。这允许使用web技术开发(并且可能直接从现有移动网站复制代码),同时还保留本地应用的某些优点(例如,对设备硬件的直接访问,离线操作,应用商店可见性)。

更多信息:多个手机基于Web的应用程序框架


2.历史

在诸如客户端 - 服务器的早期计算模型中,应用程序的处理负载在服务器上的代码和在每个客户端上本地安装的代码之间共享。换句话说,应用具有其自己的预编译的客户端程序,其用作其用户接口并且必须单独安装在每个用户的个人计算机上。升级到应用程序的服务器端代码通常还需要升级到安装在每个用户工作站上的客户端代码,增加了支持成本并降低了生产率。此外,应用程序的客户端和服务器组件通常与特定的计算机体系结构和操作系统紧密绑定,并且将它们移植到其他计算机上通常对除了最大的应用程序之外的所有应用程序都是昂贵的。(今天,当然,移动设备的本机应用程序也受到一些或所有上述问题的影响。)

相反,web应用使用以诸如HTML和JavaScript之类的标准格式编写的web文档,其由各种web浏览器支持。Web应用可以被认为是客户端 - 服务器软件的特定变体,其中客户端软件在使用诸如HTTP的标准过程访问相关网页时被下载到客户端机器。客户端web软件更新可以在每次访问网页时发生。在会话期间,Web浏览器解释并显示这些页面,并作为任何Web应用程序的通用客户端。

在Web的早期,每个单独的网页作为静态文档被递送给客户端,但是页面序列仍然可以提供交互式体验,因为用户输入通过嵌入在页面标记中的网络表单元素返回。但是,对网页的每个重大更改都需要回到服务器来刷新整个页面。

1995年,Netscape引入了一种称为JavaScript的客户端脚本语言,允许程序员向客户端运行的用户界面添加一些动态元素。因此,代替向服务器发送数据以生成整个网页,下载的页面的嵌入脚本可以执行各种任务,例如输入验证或显示/隐藏页面的部分。

在1996年,Macromedia推出了Flash,一个矢量动画播放器,可以添加到浏览器作为插件在网页上嵌入动画。它允许使用脚本语言对客户端上的交互进行编程,而无需与服务器通信。

1999年,“Web应用程序”概念在Servlet规范版本2.2中的Java语言中引入。当时JavaScript和XML都已经开发,但是Ajax还没有被创造出来,XMLHttpRequest对象最近只是作为一个ActiveX对象在Internet Explorer 5上引入

2005年,Ajax这个词被创造出来,像Gmail这样的应用程序开始使他们的客户端越来越互动。网页脚本能够联系服务器以存储/检索数据,而无需下载整个网页。

2011年,HTML5最终确定,提供图形和多媒体功能,而不需要客户端插件。HTML5还丰富了文档的语义内容。API和文档对象模型(DOM)不再是事后考虑,而是HTML5规范的基本部分。WebGL API为基于HTML5画布和JavaScript语言的高级3D图形铺平了道路。这些对于创建真正的平台和独立于浏览器的富Web应用程序具有重要意义。


3.接口

通过Java,JavaScript,DHTML,Flash,Silverlight等技术,应用程序特定的方法,如在屏幕上绘图,播放音频,以及访问键盘和鼠标都是可能的。许多服务已经努力将所有这些组合成一个更熟悉的界面,采用操作系统的外观。这些技术也支持通用技术,例如拖放。Web开发人员经常使用客户端脚本来添加功能,特别是创建不需要页面重新加载的交互式体验。最近,已经开发了技术来协调客户端脚本与服务器端技术,如ASP.NET,J2EE,Perl / Plack和PHP。

Ajax是一种使用各种技术的组合的web开发技术,它是创建更具互动性的体验的技术的一个例子。


4.结构体

应用程序通常被分成称为“层”的逻辑块,其中每个层被分配一个角色。传统应用程序仅由1层组成,它位于客户端计算机上,但Web应用程序本质上是一种n层方法。[5]虽然许多变化是可能的,但最常见的结构是三层应用。在其最常见的形式中,三层被称为呈现,应用和存储,以此顺序。Web浏览器是第一层(演示),使用一些动态Web内容技术(例如ASP,CGI,ColdFusion,Dart,JSP / Java,Node.js,PHP,Python或Ruby on Rails)的引擎是中间层(应用逻辑),数据库是第三层(存储)。Web浏览器向中间层发送请求,中间层通过对数据库进行查询和更新来为中间层提供服务,并生成用户界面。

对于更复杂的应用程序,3层解决方案可能不足,使用n层方法可能是有益的,其中最大的好处是将驻留在应用程序层上的业务逻辑打破为更细粒度模型。另一个好处是可以添加一个集成层,通过提供一个易于使用的接口来访问数据,从而将数据层与其他层分离。例如,客户端数据将通过调用“list_clients()”函数而不是直接对数据库上的客户端表进行SQL查询来访问。这允许替换基础数据库,而不对其他层进行任何改变。

有些人将Web应用程序视为双层架构。这可以是执行所有工作并查询“哑”服务器或依赖于“智能”服务器的“哑”客户端的“智能”客户端。客户端将处理表示层,服务器将具有数据库(存储层),并且业务逻辑(应用层)将在其中之一上或两者上。虽然这增加了应用程序的可扩展性,并分离显示和数据库,但它仍然不允许层的真正专业化,所以大多数应用程序将超过这个模型。


5.业务使用

应用软件公司的一个新兴策略是提供对以前作为本地应用程序分发的软件的Web访问。根据应用的类型,它可能需要开发完全不同的基于浏览器的界面,或者仅仅调整现有应用以使用不同的呈现技术。这些程序允许用户每月或每年支付使用软件应用程序的费用,而不必将其安装在本地硬盘驱动器上。
遵循该策略的公司被称为应用服务提供商(ASP),并且ASP目前在软件行业中受到很多关注。

这些类型的应用程序的安全漏洞是一个主要问题,因为它可以涉及企业信息和私人客户数据。保护这些资产是任何Web应用程序的重要组成部分,并且一些关键的操作领域必须包含在开发过程中。[6]这包括认证,授权,资产处理,输入,日志记录和审计的过程。从一开始就将安全性应用到应用程序中从长远来看可以更有效和更少的中断。

云计算模型Web应用程序是软件即服务(SaaS)。有企业提供的固定或使用相关费用的SaaS业务应用程序。其他Web应用程序是免费提供的,通常通过Web应用程序界面中显示的广告获得收入。


6.编写Web应用程序

主要文章:Web应用程序开发

编写Web应用程序通常由开源软件简化[相关? - 讨论],如Django,Ruby on Rails或Symfony称为Web应用程序框架。这些框架通过允许开发团队专注于他们的应用程序的特定于他们的目标的部分,而不必解决诸如用户管理的共同发展问题来促进应用程序的快速开发。虽然许多这些框架是开源的,但这绝不是一个要求。

使用Web应用程序框架通常可以减少程序中的错误数量,通过使代码更简单,并允许一个团队专注于框架,而另一个专注于指定的用例。在暴露于因特网上的不断黑客攻击的应用中,与安全相关的问题可能由程序中的错误引起。框架还可以促进使用最佳实践,如POST后POST。

此外,在互联网操作系统上开发应用程序是有潜力的,尽管目前没有多少可行的平台适合这种模式。


7.应用程序


浏览器应用程序的示例是简单的办公软件(文字处理器,在线电子表格和演示工具),但也可以包括更高级的应用程序,如项目管理,计算机辅助设计,视频编辑和销售点。



  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 25
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值