之前我问过什么是 Java EE?.
所以。从回答中,我了解到 Java EE 非常适合 Web 应用程序,但对于网站来说太复杂了。谷歌搜索“网络应用程序”一词,我发现:
Web 应用程序是客户端-服务器应用程序,其中浏览器是客户端,Web 服务器是服务器。Web应用逻辑分布在服务器和客户端之间,数据主要存储在服务器上,信息通过网络交换。
但是网站不就是网络应用程序吗?乍一看,这似乎是客户端和服务器之间使用某种协议交换文件。不是这样吗?特别是如果您考虑到 AJAX 技术。
之前我问过什么是 Java EE?.
所以。从回答中,我了解到 Java EE 非常适合 Web 应用程序,但对于网站来说太复杂了。谷歌搜索“网络应用程序”一词,我发现:
Web 应用程序是客户端-服务器应用程序,其中浏览器是客户端,Web 服务器是服务器。Web应用逻辑分布在服务器和客户端之间,数据主要存储在服务器上,信息通过网络交换。
但是网站不就是网络应用程序吗?乍一看,这似乎是客户端和服务器之间使用某种协议交换文件。不是这样吗?特别是如果您考虑到 AJAX 技术。
这是一个非常微妙的点,应该从“概念”的角度来考虑。现在,当然,holivar 将开始,但我仍然会给出我的恕我直言。
站点更像是一种信息资源,不涉及任何复杂的逻辑,更侧重于传递内容。站点大多位于 Internet 上的公共域中。
相反,Web 应用程序涉及与用户的密切交互,从他那里接收“业务数据”,进行复杂的处理和存储,甚至可能不向用户提供结果。Web 应用程序通常在 Intranet 上运行。
第一个示例是相同的筹码、habr 或最后的筹码。
第二个例子是 Googledox、SAP 等。
用于工作的 Web 应用程序、用于娱乐/信息搜索的站点。
英文维基文章给了我们这样的解释:
UPD从真空中的球形马的角度来看,任何网站都可以称为 Web 应用程序,反之亦然。但在现实生活中,这些定义通常是根据上述主观标准来划分的。
网站是网络应用程序的一个子集。
在通信中,这通常称为在浏览器中显示的任何页面。但在实践中,这个页面可以是一个“复杂”系统的一部分(例如,某种工作流或从“页面”你可以控制一些设备(请求将转到服务器,服务器实现控制,对于例如,“智能家居”))。当他们这么说的时候
从上下文来看,我会认为该站点是一个具有一组页面的信息资源,一个管理面板。而要创建它,最好是真正采用现成的框架,所有技术问题都已解决。
但是很可能已经在这个框架上投入了相当多的时间,而且这也是一个复杂的网络应用程序。总的来说,在我看来,这些差异是主观的,并且在很大程度上取决于您的观点。
让我们按照定义:
客户端是浏览器,服务器是网络服务器。
好吧,总的来说,一切都很清楚。确实,站点和应用程序都会以某个浏览器作为客户端,并以某个 Web 服务器作为服务器。服务器将提供站点或应用程序页面的标记,静态的或动态生成的,可能来自模板。
对于一个网站,这很可能(不总是,但最常见)是某种静态的——页面上的图片、视频、文本;页面本身可以由某些内容管理系统生成,但这并不能阻止静态成为静态,某些逻辑将提供它的事实已经是理解我们正在与提供此静态的某些服务进行通信的原因 - 即 与网络应用程序。
对于“纯”Web 应用程序,我们将有一组表单用于数据输入和向用户展示(生成的 HTML 页面、JSON 文本、XML 等)- 用于输出。
Web 应用程序逻辑分布在服务器和客户端之间
对于旧式网站,逻辑(如果存在)最多是以各种 JavaScript“改进”的形式出现——动画、提交表单等。这些 JS 元素(以及 HTML 表单)允许您将数据发送到其他地方这一事实并不能使它们成为成熟的 Web 应用程序。没有接收方处理数据,有一些逻辑 - 这些 JS 脚本和表单只是静态的,由浏览器“动画化” - 执行其功能的 Web 客户端 - 与 Web 服务器通信并以表单形式呈现接收到的数据标记和多媒体。网页可能包含网络应用程序的元素,但页面本身只是以图形形式呈现的标记。网站是一种资源,没有逻辑的数据。
在应用程序中,我们可以观察到活跃的数据操作,这可能不会影响页面本身的外观(回忆各种指标、用户活动监视器等),或者它可能会显着改变显示页面的外观(回忆游戏) , 订票服务等).等). 数据在客户端和服务器端之间移动。
简而言之:在播放器中观看在线视频的站点是一项服务,一个 Web 应用程序,使用其播放器部分,加载数据并显示它,对控件上的操作做出反应 - 从选定的时刻滑块播放视频,暂停视频, ETC。具有一组文本页面和视频文件链接的站点在单击时开始将视频文件下载到计算机磁盘 - 这些“只是站点”。是的,这里客户端浏览器从web服务器下载数据,但是这个数据只是服务器端根据web服务器和web浏览器的标准逻辑提供的,没有任何额外的逻辑操作(检查用户的年龄,统计“喜欢” ”,跟踪多媒体的播放部分等)。
随着 web 2.0+ 的到来,“马、人混为一谈”,但“站点”和“web 应用”的界限仍然停留在 \u200b\u200bad-on 逻辑领域。
数据存储主要在服务器上进行 是的,数据存储落在服务器上。但在网站的情况下,这正是“abc 目录中数据的位置”,在应用程序的情况下,可以向使用 A1 服务器的客户端提供对该数据的访问,作为一部分服务,访问 B2 服务器集群,接收数据,将它们与来自另一个 B3 服务器的数据进行比较,然后才以某种形式将其提供给客户端。“简单站点”要么有资源,要么没有。但是可以将 Web 应用程序的“小部件”(具有可嵌入形式的 JS 脚本)放置在常规站点上,这将在“常规站点”上提供特定服务(Web 应用程序)的功能。后者不会使站点成为 Web 应用程序。
嗯,有了网络数据交换,我想就不需要再解释了。