Web 应用程序和客户端/服务器应用程序有啥区别?

Posted

技术标签:

【中文标题】Web 应用程序和客户端/服务器应用程序有啥区别?【英文标题】:What is the difference between a web application and a client/server application?Web 应用程序和客户端/服务器应用程序有什么区别? 【发布时间】:2010-10-17 10:27:09 【问题描述】:

这是我从另一个 question 那里得到的。

在 sqlite 的适当用途下,它具有:

SQLite 运行良好的情况

•网站

SQLite 通常会很好地作为 中低端数据库引擎 流量网站(也就是说, 99.9% 的网站)。 SQLite 可以处理的网络流量 当然,取决于 网站使用其数据库。一般来说 说起来,任何获得更少的网站 每天超过 10 万次点击应该可以正常工作 与 SQLite。 100K 点击/天的数字 是保守的估计,不是硬的 上限。 SQLite 已经 证明可以使用 10 次 流量。

另一个 RDBMS 可能出现的情况 工作得更好

•客户端/服务器应用程序

如果您有许多客户端程序 通过 a 访问公共数据库 网络,您应该考虑使用 客户端/服务器数据库引擎 SQLite 的。 SQLite 将在一个 网络文件系统,但由于 与大多数网络相关的延迟 文件系统,性能不会 伟大的。此外,文件锁定逻辑 许多网络文件系统 实现包含错误(在两个 Unix 和 Windows)。如果文件锁定 不能正常工作,它可能 可以为两个或多个客户 修改相同部分的程序 同时使用同一个数据库, 导致数据库损坏。 因为这个问题是由错误引起的 在底层文件系统中 执行,什么都没有 SQLite 可以做到这一点。

一个好的经验法则是你 应避免在 同一个数据库的情况 将同时从 许多计算机通过网络 文件系统。


我的问题:

我要在这里表明我的无知,但这两者之间有什么区别?

【问题讨论】:

这不是关于客户端/服务器的真正问题。这是一个关于何时/何地使用 SQL Lite 的问题。 我不同意。可能两者兼而有之。在我看来,主要是关于前者。 【参考方案1】:

“web”应用程序意味着浏览器是客户端

客户端/服务器应用程序意味着自定义客户端应用程序。想想 Outlook 连接到交换,虽然它可能使用网络连接,但它是交换服务器的自己的客户端。

编辑:

更具体到您发布的 sqlite 文本,它们的意思是客户端应用程序不应直接访问您的 sqllite DB,而应使用某种服务器端接口(即 json Web 服务)

但在我看来,这条经验法则适用于所有数据库引擎。如果我使用的是 SQL Server 或 Oracle,我绝对会避免让客户端应用程序直接连接到数据库,这有很多潜在的问题,首先是安全性。

【讨论】:

sane DB 服务器拥有比任何自定义 web 应用程序更好的安全框架 哈维尔我认为你没有抓住重点。对于直接连接到数据库的客户端应用程序,它需要登录到该数据库,这意味着登录凭据(无论登录可能受到多大限制)仍然存储在客户端,这是一个很大的禁忌 没有理智的 DBA 会允许编码人员在客户端应用程序中放置数据库登录。【参考方案2】:

“Web 应用程序”是一种通常使用浏览器作为客户端的应用程序。 Web 应用程序是客户端/服务器应用程序。换句话说,您可以将客户端/服务器应用程序视为超类,而 Web 应用程序是子类。

【讨论】:

虽然我完全同意,但我认为存在一种(恕我直言,通常是不正确的)看法,即使用 Web 浏览器在某种程度上将 Web 应用程序排除在“客户端/服务器”应用程序之外。【参考方案3】:

注意有几点不同:

Web 应用程序假定客户端是 Web 浏览器,并且客户端和服务器之间的通信是无状态的 (HTTP)。它还倾向于假设客户端是“瘦的”并且在浏览器中完成的信息处理很少。

客户端-服务器应用程序假设客户端是一个“厚”客户端,并且客户端和服务器之间的通信保持状态(这不一定是真的)。通信几乎可以是任何协议。老式的客户端-服务器或 2 层应用程序确实让每个客户端直接连接到数据库——出于各种原因,我建议不要这样做,第一是安全性。这可能是您在说 SQLite 不合适时发布的来源的意思。

3 层以上类型的应用程序仍然可以进行有状态的客户端-服务器通信,但中间层将处理实际的数据库通信。在这种情况下,网络延迟并不重要,SQLite 可以工作(因为它更像是一个网络应用程序)。

【讨论】:

第二段中的“保持状态”是什么意思?【参考方案4】:

b/n 客户端/服务器应用程序和 Web 应用程序服务器的区别

1) 客户端服务器应用程序遵循两层架构,但 Web 服务器应用程序遵循三层或“n”层架构。

2)在客户端服务器应用程序中,我们不会使用 Web 服务器,但在 Web 服务器应用程序中将使用相同的。

3)客户端服务器应用主要用于Intranet领域,而Web服务器应用则用于Internet领域。

4) 客户端服务器中的安全问题非常少,因为有最少的用户,但在 Web 服务器中,安全问题是最大的,因为最终用户更多。

5) 性能问题不会在客户端服务器中考虑,但会考虑到 Web 服务器应用程序。

【讨论】:

【参考方案5】:
    Web 应用程序在浏览器上运行,客户端-服务器应用程序作为 .exe 运行。 Web 应用程序在服务器上运行,客户端-服务器应用程序在客户端运行。 Web 应用程序是瘦客户端,客户端-服务器应用程序是胖客户端。 Web 应用程序不需要安装在客户端系统中,客户端-服务器应用程序需要安装在客户端系统中 5.Web应用需要低维护,客户端-服务器应用需要高维护

http://webvsclientserverbysujan.blogspot.in/2014/01/WebVsDesktoApppbysujan.blogspot.com.html

【讨论】:

以上是关于Web 应用程序和客户端/服务器应用程序有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

应用服务器和web服务器都有哪些。有啥区别?

请问Java ee与Javaweb 有啥区别

流媒体和普通web服务器有啥区别

微前端和微服务有啥区别

应用程序服务器和 Web 服务器有啥区别?

Web 服务和远程处理有啥区别?