首页 > 解决方案 > 你如何让一个网站被别人看到

问题描述

我是 node.js 的新手,我对服务器的工作方式有一些疑问。这可能有点傻,但我对服务器的理解是,它是我们用来与他人共享网站的工具。考虑以下代码:

var http = require("http");

http.createServer(function (request, response) {
   // Send the HTTP header 
   // HTTP Status: 200 : OK
   // Content Type: text/plain
   response.writeHead(200, {'Content-Type': 'text/plain'});

   // Send the response body as "Hello World"
   response.end('Hello World\n');
}).listen(8081);

// Console will print the message
console.log('Server running at http://127.0.0.1:8081/');

当我们运行以下代码时,我们说我们已经“创建了一个服务器”。当我们访问“ http://127.0.0.1:8081/ ”时,我们得到了想要的结果。但是,我不明白的是,如果我们“创建了服务器”,为什么只有执行 node.js 文件的计算机才能访问网址?我知道http://127.0.0.1:8081/不是唯一的,必须购买一个域名。或使用某种形式的免费托管。但是,我看不出所有这些东西是如何联系在一起的。

创建 html 文件时,我们可以在浏览器中查看它们,但其他人无法查看,因为我们没有设置服务器。我的想法是,一旦我了解了服务器,我最终将能够托管一个网站。我认为我在这里想要的是解释如何从HTMLcss javascript 等到建立和运行网站。

标签: webserver

解决方案


速成课程:什么是服务器?

我是 node.js 的新手,我对服务器的工作方式有一些疑问。这可能有点傻,但我对服务器的理解是,它是我们用来与他人共享网站的工具。

服务器一词非常通用。简单地说,服务器是向客户端提供数据或功能(服务)的程序或机器;客户端是从服务器接收数据或服务的程序或机器。

服务器和客户端示例

重要提示:服务器和客户端的概念并不是 node.js 或网站所独有的。以下是一些其他类型的服务器:

  • 家庭媒体服务器提供照片、音乐和视频。客户端包括您家中计算机/手机/平板电脑中的媒体播放器应用程序。
  • 邮件服务器提供电子邮件。客户端包括互联网上所有计算机/手机/平板电脑中的电子邮件应用程序。
  • Web 服务器提供HTML、CSS、Javascript 文件以及照片、视频、PDF 文档等在线内容。客户端包括 Web 浏览器。

服务器和客户端可以非常“接近”在一起(例如在同一台计算机上的同一个程序中),或者它们可以相距非常“远”(例如在不同国家的不同计算机中,通过 Internet 分开)。或者,它们可能介于两者之间(例如在同一所房子的不同计算机内)。

速成班:什么是 127.0.0.1?

如果我们已经“创建了一个服务器”,为什么只有执行 node.js 文件的计算机才能访问该网址?

127.0.0.1 是一个特殊的IP 地址,也称为localhost。简单地说,它指的是“承载这个应用程序的机器”。当您告诉 Web 浏览器访问 127.0.0.1 时,您的 Web 浏览器会在运行它的同一台计算机上查找服务器。

如果您使用手机的网络浏览器访问 127.0.0.1,它不会在您的计算机上查找运行 node.js 的服务器。相反,它会在您的手机上寻找服务器。

如何在家中的另一台机器上查看网站?

如果您想让您的手机在您的计算机上查看网站,您需要执行几个步骤。我会给你一个总结,但你必须自己深入研究这些主题:

  1. 您的手机和 node.js PC 必须在同一子网中。您可以通过将两台设备连接到同一个 Wi-Fi 网络来实现这一点。
  2. 您必须找出您 PC 的本地 IP 地址ipconfig如果您的 PC 运行 Windows,则可以使用,ifconfig如果它运行 Linux,则可以使用。
  3. 您必须告诉您的 PC防火墙允许您的 Web 服务器使用的TCP 端口上的传入流量。在您的示例中,您使用的是 port 8081
  4. 最后,告诉您手机的网络浏览器您 PC 的本地 IP 地址端口。比如你PC的IP地址是192.168.1.20,那么用你的手机访问http://192.168.1.20:8081/

如何通过 Internet 在另一台机器上查看网站?

这是另一天的话题。

我的想法是,一旦我了解了服务器,我最终将能够托管一个网站。

对不起,这还不够。涉及的内容更多。从研究我已经提到的主题开始,以粗体显示。


推荐阅读