【问题标题】:What is absolutely necessary to have a website running on the web?在网络上运行网站绝对必要的是什么?
【发布时间】:2016-10-20 18:53:34
【问题描述】:

在 Google 上搜索免费“网络服务器”和“网络框架”的热门列表几个小时后,我意识到我不确定自己在看什么。

让我们以我遇到的几个示例软件为例:

  • IIS
  • Apache HTTP 服务器
  • Apache Tomcat
  • Socket.io
  • Node.js
  • 姜戈

问题:

  1. 所有这些都在同一个范围内工作/做同样的事情吗?

  2. 如果不是,那么让我的“helloworld.html”可以通过互联网从任何地方访问是绝对必要的吗?假设我已经有一个专用服务器和一个域

  3. 如果不是,它们如何协同工作/互相称赞?

每个软件在他们的网站上都有不同的描述,说明它的作用、它是什么、谁应该使用它,当你试图找到什么是“新鲜的”、什么是酷孩子时,它真的会让人感到困惑使用

【问题讨论】:

  • socket.io 并不真正属于该列表。其余的是用于 java、python、php 和 javascript 的框架或服务器。所以,问题是,你喜欢用哪种语言编写代码?
  • @Pamblam Lua、Python、Javascript,按相似顺序排列 :)
  • 如果您喜欢 python,请寻找支持 django 的主机。但是,如果您只是想快速启动和运行,那么 apache 几乎是标准配置,因此最容易以最便宜的价格找到。

标签: node.js django apache web server


【解决方案1】:

IISApache 是 Web 服务器,它们支持将代码插入 Web 服务器的各种不同技术。因此,如果您使用其中一个 Web 服务器,您还可以使用其他一些框架和语言运行时来插入它们。

Apache Tomcat 是一个用于 Web 应用程序的基于 Java 的服务器框架。来自维基百科页面:“Apache Tomcat,通常称为 Tomcat,是由 Apache 软件基金会 (ASF) 开发的开源 Java Servlet 容器。Tomcat 实现了多个 Java EE 规范,包括 Java Servlet、JavaServer Pages (JSP)、Java EL 和 WebSocket,并提供了一个“纯 Java”HTTP Web 服务器环境,Java 代码可以在其中运行。”它可以独立于 Apache Web 服务器使用。名称中的“Apache”与它是 Apache 开源组织的一部分有关。因此,如果您想用 Java 对服务器进行编程,这是您的选择之一。

node.js 是一个基于 Javascript 的框架,它既是一个框架又是它自己的 Web 服务器。因此,如果您想用 Javascript 对 Web 服务器进行编程,这是您的主要选择。您可以将其他框架与 node.js 一起使用,例如 Express,以简化 Web 服务器的编程。

Django 是一个基于 python 的框架。如果您想用 Python 对您的 Web 服务器进行编程,这是您的选择之一。

socket.io 真的不像其他任何一个。 socket.io 是 webSockets 之上的一个层,它为您提供了一系列基于 webSockets 的附加功能。这将在您已经使用的任何服务器端语言和框架中运行,并且您必须选择与您的服务器技术兼容的 socket.io 库。您可以在此处查看 socket.io 在 webSocket 之上添加的功能列表:Moving from socket.io to raw websockets?。 webSockets 本身用于服务器和客户端之间的持续通信(比重复的 Ajax 调用更有效)以及从服务器到客户端的推送通知。


因此,如果您想从头开始选择一项技术,您可以通过多种不同的方式开始您的选择过程。

  1. 如果您有首选语言(Java、Python、Javascript、Ruby、C# 等),您已经知道或想要学习,那么您可以查看支持您的语言的框架并开始那里。该框架将指示您是否需要一个配套的 Web 服务器,或者它是否已经是该框架的一部分。

  2. 如果您想要使用现有的托管公司,您可能需要了解他们支持哪些技术,这样您就不会选择需要您更改托管公司的东西。并非所有托管公司都支持所有技术,有些托管公司在某些技术方面是更好的专家。

  3. 如果您想要使用特定的第 3 方代码或库,您可能需要调查哪些语言/框架更易于使用。

新鲜的和酷孩子们正在使用的经常变化。我建议这是一个糟糕的标准。更有意义的是了解哪些技术和框架在加速增长和背后的丰富开发社区方面表现良好,而哪些技术和框架可能会失宠。我自己没有做过任何形式的整体调查,以提供任何形式的清单,列出哪些方面正在上升,哪些方面做得很好,哪些方面更停滞不前。

我个人偏爱 node.js 和庞大的 NPM 开源和兼容代码库,您可以从中汲取灵感,以及在前端和后端使用一种语言的能力。它无疑是快速增长的选择之一,并且背后有一个充满活力的开发社区。但是,它并不是满足这些条件的唯一选择。

【讨论】:

  • 关于tomcat的答案不太正确。 Apache Tomcat 不是一个框架,它是一个 servlet 容器/引擎。 Tomcat 可以为 java servlet 提供服务,但也可以充当带有或不带有 Apache 服务器的 web 服务器。事实上,它与 Apache 服务器无关,只是作为 Aapche 项目的一部分。一些 tomcat 实例在 Aapche 后面运行,但最近有些人单独运行 tomcat,或者在另一个代理后面运行。
  • @adamM - 我对 Tomcat 描述进行了编辑。如果可以改进,请随时提出修改建议。
猜你喜欢
  • 2015-01-02
  • 1970-01-01
  • 2022-06-21
  • 1970-01-01
  • 2018-07-19
  • 2016-05-26
  • 1970-01-01
  • 2019-12-16
  • 2019-10-02
相关资源
最近更新 更多