【问题标题】:I'm confused with the meaning of WAS(Web Application Server) and web framework我对 WAS(Web 应用程序服务器)和 Web 框架的含义感到困惑
【发布时间】:2017-01-19 07:00:47
【问题描述】:

我想我知道什么是框架,以及一些著名的框架,如ruby on rails、spring,我想我可以区分web server和web application server的含义。

但我不知道 WAS 和框架之间有什么不同,对我来说,我认为框架是一种 WAS,因为框架正在做许多与来自 Web 服务器(Apache 或 nginx)的数据库处理请求相关的动态工作

我对 Web 编程中这两个部分之间的关​​系感到困惑。

你能解释一下吗?

【问题讨论】:

    标签: web frameworks


    【解决方案1】:

    基本上,框架只负责提供对 http 请求的响应(包括按您所说的处理数据库)。但是 Rails 不负责在新的 http 请求到达时打开一个新线程(或在某些实现中,一个进程)——这是由应用程序服务器(如 Puma、Webrick、Unicorn 等)完成的。这称为并发(简而言之,能够同时为应用程序提供多个请求的能力)并且纯粹是应用程序服务器的工作。另一件事是理解(和解析)http 请求——Rails 没有实现 http,它从实现 http 的应用服务器接收就绪请求。

    在 ruby​​ Land 中,每个部分的工作由机架协议 https://rack.github.io/ 定义。 Rails 作为一个机架应用程序,只是等待“某物”(Web 应用程序服务器)“调用”它(使用 http 请求),然后将响应返回给它。

    总结一下:应用服务器需要处理线程或多处理来为 Rails 提供 http 请求(应用服务器基本上总是在某个套接字上监听新请求,并通过分叉进程、打开新线程来提供并发或两者兼而有之。这取决于应用服务器)。因此,应用服务器还需要理解 http(能够解析 http 请求),以便将其提供给 Rails。

    Web 框架 Rails 只需要处理一个 http 请求并返回响应即可。

    【讨论】:

    • 无法表达我对你的感激之情
    【解决方案2】:

    对于那些想了解 Web 服务器和应用程序服务器之间的区别的人。 参考What is the difference between application server and web server?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-14
      • 1970-01-01
      • 1970-01-01
      • 2014-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-11
      相关资源
      最近更新 更多