网络应用程序

✍ dations ◷ 2025-11-12 14:19:25 #网络应用程序

网络应用程序(英语:web application,英文简称 Webapp)分为客户端到服务器架构或无服务器后端架构。其中的客户端就是网页浏览器。常见的网页应用程序有Webmail、网络购物、网络拍卖、wiki、网络论坛、博客、网络游戏等诸多应用。

网络应用程序风行的原因之一,是因为可以直接在各种电脑平台上执行,不需要事先安装或定期升级等程序。

各种类型的动态网页和“网络应用程序” 之间的区别一般是不清楚的。最有可能接近“网络应用程序”的网站是与桌面软件应用程序或移动应用程序具有类似功能的网站。HTML5引入了明确的支持,使得应用程序可以作为网页加载,可以在本地存储数据并在脱机状态下继续运行。

单页应用更类似于应用程序,因为它们没有使用不同的URL切换操作界面。像 Sencha Touch 和 AngularJS 这样的单页网页框架可能会被用来为移动平台开发这样的网页应用。

在制作Web应用程序时,有几种定位移动设备的方法:

在较早的网络架构(如客户机 - 服务器)中,应用程序的处理负载在服务器上的代码和本地安装在每个客户机上的代码之间共享。换句话说,一个应用程序有自己的预编译客户端程序作为其用户界面,必须分别安装在每个用户的个人电脑上。升级到应用程序的服务器端代码通常还需要升级到安装在每个用户工作站上的客户端代码,这增加了技术支持成本并降低了生产力。此外,应用程序的客户端和服务器组件通常都与特定的计算机系统结构紧密相连,操作系统并将它们移植到其他操作系统对于除了最大的应用程序之外的所有操作系统而言都是非常昂贵的 (现在,用于移动设备的本地应用程序也受到一些或所有上述问题的困扰。)

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

在万维网的早期,每个单独的网页作为一个静态文档被传送到客户端,但是由于用户输入是通过嵌入在页面标记中的网页的<Forms>元素返回的,所以页面的顺序仍然可以提供交互式的体验。但是,每次对网页的重大更改都需要往返服务器以刷新整个页面。

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

1996年,Macromedia引入了Flash,这是一种矢量动画播放器,可以作为插件添加到浏览器中,以在网页上嵌入动画。它允许使用脚本语言来编程客户端的交互,而不需要与服务器通信。

在1999年,“Web应用程序”概念在Servlet Specification 2.2版中以Java语言引入。。当时JavaScript和XML已经被开发出来,但Ajax还没有被创造出来,并且XMLHttpRequest对象在2008年才作为ActiveX对象在Internet Explorer 5上引入。

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

在2011年,HTML5被定稿,提供图形和多媒体功能,而不需要客户端插件。HTML5也丰富了文档的语义内容。API和文档对象模型(DOM)不再是事后的,而是HTML5规范的基础部分。WebGL API为基于HTML5的canvas和JavaScript语言的高级3D图形铺平了道路。这些在创造真正的平台和浏览器独立显著重要性的丰富互联网应用程序。

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

使用各种技术组合的网页开发技术AJAX是创造更多交互式体验的技术示例。

应用程序通常被分成称为“层”的逻辑块,其中每个层被分配一个角色。传统的应用程序只包含一层,它驻留在客户端机器上,但是网页应用程序本身就是一种n层的方法。尽管可能有许多变化,但最常见的结构是三层应用程序。按照最常见的形式,这三个层次按顺序被称为呈现,应用和存储。网页浏览器是第一层(呈现),引擎使用一些动态的网页内容技术(如ASP,CGI,ColdFusion,Dart,JSP / Java,Node.js,PHP,Python或Ruby on Rails)是中间层(应用程序逻辑),数据库是第三层(存储)。 Web浏览器发送请求到中间层,它通过使查询和更新对数据库服务他们,并生成用户界面。

对于更复杂的应用程序,三层解决方案可能不足,使用n层方法可能会有所帮助,其中最大的好处是将驻留在应用程序层上的业务逻辑划分为更细粒度模型。另一个好处是可以通过提供易于使用的界面来访问数据,添加一个集成层,将数据层与其他层分开。例如,客户端的数据将被通过调用一个 "list_clients()" 函数,而不是直接使一个SQL查询针对数据库上的客户端表访问。这样可以替换底层的数据库,而不会对其他层进行任何更改。

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

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

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

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

编写一个Web应用程序经常使用开源软件简化,如Django、Ruby on Rails或Symfony称为Web应用框架。这些框架有助于快速应用程序开发,让开发团队专注于其应用程序的独特部分,而无需解决诸如用户管理等常见的开发问题。

使用Web应用程序框架通常可以减少程序中的错误数量,通过简化代码,并允许一个团队专注于框架,而另一个专注于实现功能。在因特网上经常发生黑客攻击的应用程序中,与安全相关的问题可能由程序错误引起。框架还可以促进使用最佳实践,例如Post/Redirect/Get。

此外,互联网操作系统 (页面存档备份,存于互联网档案馆)上的应用程序也有发展的潜力,尽管目前没有太多可行的平台适合这种模式。

相关

  • 拉克代夫海拉克代夫海是印度洋北部的一个海,位于印度、马尔代夫和斯里兰卡之间的海域,面积786,000平方公里,平均水深1,929米,最大水深4,131米,有多处珊瑚礁。
  • 各国军衔本表罗列第二次世界大战各主要参战国的军衔。(Colonnello)
  • 古纳万·穆罕默德古纳万·苏萨蒂约·穆罕默德(印度尼西亚文旧拼写法:Goenawan Soesatjo Mohamad,新拼写法:Gunawan Susatyo Mohamad,1941年7月29日-)是一位印度尼西亚诗人、文学家、剧作家暨导演。
  • 云龙 (台湾)云龙,是台湾民间传说中的龙,能够降下大雨。云龙浑身墨黑,栖息于台湾南部的傀儡山上,它能够呼风唤雨、制造云层、在云层间穿梭,并降下大雨,跟赤虬有点类似。传说当彗星出现时就是云
  • 南沙涌南沙涌,也称东南沙涌,位于中华人民共和国广东省佛山市境内,北起三水区西南街道南岸村,与东平水道相通,蜿蜒向南,至南海区西樵镇大岸镇东南汇入顺德水道。全长23.2千米,主要位于南海
  • 科特卡普拉科特卡普拉(Kot Kapura),是印度旁遮普邦Faridkot县的一个城镇。总人口80741(2001年)。该地2001年总人口80741人,其中男性42820人,女性37921人;0—6岁人口10409人,其中男5786人,女4623
  • 增田达至增田达至(日语:増田 達至/ますだ たつし ,1988年4月23日-)是日本兵库县洲本市出身的职业棒球选手,司职投手,效力于日本职棒埼玉西武狮。74 西口文也 | 76 阿部真宏 | 79 小关龙也 |
  • 谢赫·阿贝德·阿玛尼·卡鲁姆阿贝德·阿玛尼·卡鲁姆(1905年8月4日-1972年4月7日),是桑给巴尔的第一任总统。由于1964年1月桑给巴尔革命成功导致最后一位苏丹被罢黜,他获得了这一头衔。三个月后,坦桑尼亚联合共和国成立,卡鲁姆成为了新联合共和国的第一副总统,担任新国家主席。他是桑给巴尔前总统阿马尼·阿贝德·卡鲁姆(英语:Amani Abeid Karume)的父亲。据称,卡鲁姆于1905年出生在尼亚萨兰(马拉维)的村庄,几乎没有受过正规教育,在进入政界之前一名海员,曾是苏丹的水手。他在生命的最初阶段离开桑给巴尔,在伦敦和其他
  • 普岭张氏祠普岭张氏祠位于四川省南充市营山县,文物遗址年代判定为清。2012年7月16日公布为第八批四川省文物保护单位。普岭张氏祠位于四川省南充市营山县普岭乡花桥村二社蜂桶岩坝下,建于清康熙六年(1667)坐东北朝西南,由山门、戏楼、正房和左右厢房组成的木结构四合院建筑,建筑面积522.25平方米。山门七间,通宽26.9米,进深4米,通高7.6米。正房4间,通宽24米,进深9.85米,通高8米,檐高4.4米。右厢房为一楼一底建筑,每层通宽14.95米,进深4米。右厢房5间,通宽25.75米,进深4.6米。青石板院坝,
  • 博胡米尔·韦塞利博胡米尔·韦塞利(捷克语:Bohumil Veselý,1945年6月18日-),捷克男子足球运动员,司职中场。他曾代表捷克斯洛伐克国家队参加1970年国际足联世界杯,结果队伍止步小组赛阶段。