What is absolutely necessary to have a website running on the web?

时间:2016-10-20 18:53:35

标签: node.js django apache web server

After a couple hours of searching top lists of free "web servers" and "web frameworks" on google, I realized I'm not sure what I'm looking at.

Let's take a couple of example softwares I have come across :

  • IIS
  • Apache HTTP server
  • Apache Tomcat
  • Socket.io
  • Node.js
  • Django

Questions :

  1. Do all these work on the same scope/do the same thing?

  2. If not, what is absolutely necessary to have my "helloworld.html" acessible from anywhere with internet? Let's consider I already have a dedicated server and a domain

  3. Also if not, how do these work together/compliment eachother?

Each of this software has a different description on their website for what it does, what it is, who should use it, it really gets confusing when you're trying to find what is "fresh", what the cool kids are using

1 个答案:

答案 0 :(得分:1)

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

Apache Tomcat 是一个基于Java的Web应用程序服务器框架。来自维基百科页面:“Apache Tomcat,通常被称为Tomcat,是由Apache Software Foundation(ASF)开发的开源Java Servlet容器.Tomcat实现了几个Java EE规范,包括Java Servlet,JavaServer Pages(JSP),Java EL和WebSocket,提供了一个“纯Java”HTTP Web服务器环境,可以运行Java代码。“它可以独立于Apache Web Server使用。名称中的“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. 如果您要使用特定的第三方代码或库,您可能需要调查哪些语言/框架可以更容易地使用。

  4. 什么是新鲜和酷孩子正在使用的变化非常频繁。我认为这是一个糟糕的标准。更有意义的是了解哪些技术和框架在加速增长方面表现良好,以及它们背后的丰富发展社区与哪些技术和框架可能会失宠。我没有做过任何类型的整体调查,提供任何有关上升和做得好的内容以及更加停滞不前的内容。

    我个人偏爱node.js以及可以从中获取的开源和兼容代码的庞大NPM库,以及为前端和后端使用一种语言的能力。它肯定是快速增长的选择之一,并且拥有一个充满活力的发展社区。但是,它不是满足这些资格的唯一选择。

相关问题