您如何获得别人看到的网站

时间:2019-02-04 01:50:50

标签: web server

我是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文件时,我们可以在浏览器中查看它们,但是没有其他人可以浏览,因为我们没有设置服务器。我的想法是,一旦我了解了服务器,我最终将能够托管一个网站。我想在这里解释的是如何从 HTML css javascript 等到建立一个网站的过程。

1 个答案:

答案 0 :(得分:1)

速成班:什么是服务器?

  

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

服务器一词非常笼统。简单来说,服务器是为客户端提供数据或功能(服务)的程序或计算机; 客户端是从服务器接收数据或服务的程序或计算机。

服务器和客户端的示例

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

  • 家庭媒体服务器提供照片,音乐和视频。客户将媒体播放器应用程序包括在家里的计算机/电话/平板电脑中。
  • 邮件服务器提供电子邮件。客户在整个Internet的计算机/电话/平板电脑内部都包含电子邮件应用程序。
  • 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. 您必须找到您计算机的本地IP地址。如果您的PC运行Windows,则可以使用ipconfig,如果运行Linux,则可以使用ifconfig
  3. 您必须告诉PC的防火墙,以允许Web服务器使用的 TCP端口上的传入流量。在您的示例中,您使用的是端口8081
  4. 最后,将您手机的本地IP地址端口告诉您的手机的网络浏览器。例如,如果您的PC的IP地址为192.168.1.20,则使用手机访问http://192.168.1.20:8081/

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

这是另一天的话题。

  

我的想法是,一旦我了解了服务器,我终于可以托管一个网站了。

抱歉,这还不够。还有更多的参与。首先以粗体研究我已经提到的主题。