网页应用和客户端/服务器应用有什么区别?

9

我从另一个问题中获取了这个内容:链接

在适当的情况下使用SQLite:

SQLite适用的情况:

•网站

SQLite通常作为低到中等流量网站(即99.9%的网站)的数据库引擎运行良好。SQLite可以处理的Web流量量当然取决于网站对其数据库的使用程度。一般来说,任何每天获得不到100K次点击的网站都可以很好地使用SQLite。 100K次/天的数字是保守估计,而不是硬上限。 SQLite已经证明可以处理10倍于此的流量。

另一个关系型数据库管理系统可能更适用的情况:

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

如果您有许多客户端程序通过网络访问共同的数据库,则应考虑使用客户端/服务器数据库引擎,而不是SQLite。 SQLite将通过网络文件系统工作,但由于大多数网络文件系统所带来的延迟,性能并不理想。此外,许多网络文件系统实现的文件锁定逻辑包含错误(在Unix和Windows上均如此)。如果文件锁定无法正常工作,则可能会有两个或多个客户端程序同时修改同一数据库的同一部分,导致数据库损坏。由于此问题是由底层文件系统实现中的错误导致的,因此SQLite无法防止它。

一个好的经验法则是,在许多计算机通过网络文件系统同时访问同一数据库的情况下,应避免使用SQLite。


我的问题:

我要展示我的无知,但这两者之间有什么区别?


这不是关于客户端/服务器的问题,而是关于何时/在哪里使用SQL Lite的问题。 - Huntrods
1
我不同意。它可能是两者都有关。在我看来,它主要是关于前者。 - johnny
5个回答

22

“Web应用程序”通常使用浏览器作为客户端。Web应用程序是客户端/服务器应用程序,也就是说,你可以将客户端/服务器应用程序视为一个超类,而Web应用程序则是子类。


尽管我完全同意,但我认为存在一种(在我看来通常是错误的)观念,即使用 Web 浏览器会从某种程度上排除 Web 应用程序作为“客户端/服务器”应用程序的可能性。 - Atonewell

9
"web" 应用程序意味着浏览器是客户端。
客户端/服务器应用程序意味着使用自定义客户端应用程序。例如 Outlook 连接到 Exchange,虽然它可能使用 Web 进行连接,但它是 Exchange 服务器的独立客户端。
编辑:
更具体地针对您发布的 SQLite 文本,他们的意思是客户端应用程序不应直接访问您的 SQLite 数据库,而应该使用某种服务器端接口(例如 json web service)。
但是,在我看来,这个经验法则适用于所有数据库引擎。如果我使用 SQL Server 或 Oracle,我肯定会避免客户端应用程序直接连接到数据库,因为这有很多潜在的问题,首先是安全性。

理智的数据库服务器比任何自定义Web应用程序都有更好的安全框架。 - Javier
Javier,我认为你没有理解重点。客户端应用程序要直接连接到数据库,需要登录该数据库,这意味着登录凭据(无论该登录有多受限制)仍存储在客户端,这是一个大忌讳。 - Neil N
任何明智的数据库管理员都不会允许程序员将数据库登录信息放在客户端应用程序中。 - Neil N

7
有一些需要注意的区别:
Web应用假设客户端是一个Web浏览器,并且客户端和服务器之间的通信是无状态的(HTTP)。它还倾向于假设客户端是“轻量级”的,浏览器中几乎不进行信息处理。
客户端-服务器应用程序假定客户端是一个“厚”客户端,并且客户端和服务器之间的通信保持状态(这并不一定是真的)。通信可以是任何协议。老式的客户端-服务器或2层应用程序确实让每个客户端直接连接到数据库,但出于各种原因,我建议不要这样做,首要原因是安全性。这可能是您发布的来源所指的SQLite不合适的原因之一。
3+层类型的应用程序仍然可以具有带状态的客户端-服务器通信,但中间层将处理实际的数据库通信。在这种情况下,网络延迟并不重要,SQLite可以工作(因为它更像Web应用)。

第二段中的“维护状态”是什么意思? - johnny

1

客户端/服务器应用程序与Web应用程序服务器的区别

1)客户端/服务器应用程序遵循两层体系结构,而Web服务器应用程序遵循三层或“n”层体系结构。

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

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

4)由于最少用户,因此客户端/服务器应用程序的安全问题较少,但在Web服务器中,由于终端用户更多,安全问题较多。

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


0
  1. Web应用程序在浏览器上运行,客户端-服务器应用程序运行为.exe。
  2. Web应用程序在服务器上运行,客户端-服务器应用程序在客户端上运行。
  3. Web应用程序是瘦客户端,客户端-服务器应用程序是厚客户端。
  4. Web应用程序不需要安装在客户端系统中,而客户端-服务器应用程序需要安装在客户端系统中。
  5. Web应用程序需要较低的维护成本,客户端-服务器应用程序需要高维护成本。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接