gpt4 book ai didi

javascript - 需要对 nodejs 概念进行一些澄清

转载 作者:行者123 更新时间:2023-11-30 21:21:31 26 4
gpt4 key购买 nike

我开始更多地了解这个“网络世界”是如何运作的,这就是我参加免费代码训练营类(class)的原因。我已经进行了前端开发,我真的很喜欢它。现在我在后端部分。后端对我来说更加模糊。有很多事情我不明白,所以我希望有人能帮助我。

首先我了解了 get 方法。所以我做了:

var http = require('http');

然后发起get请求:

http.get(url, function callBack(response){
response.setEncoding("utf8");
response.on("data", function(data){
console.log(data);
});
});

问题 1)显然这段代码“得到”来自某个 URL 的响应。但是什么 react 呢?我什至没有特别要求什么。

继续...第二个练习要求我们监听 TCP 连接并创建服务器,然后写入该连接的日期和时间。所以这是答案:

var server = net.createServer(function listener (socket){
socket.end(date);
});
server.listen(port);

问题 2)好吧,我用 net.createServer() 创建了一个 TCP 服务器,当连接成功时,我输出了日期。但是哪里?当我将日期放在 socket.end() 中时实际发生了什么?

最后但同样重要的是……在上一个练习中,我被告知要创建一个 HTTP 服务器(什么?),以便在每次收到请求时为文本文件提供服务,这就是我所做的:

var server = http.createServer(function callback(request, response){
var read = fs.createReadStream(location);
read.pipe(response);
});
server.listen(port);

问题 3)a) 为什么我必须创建一个 HTTP 服务器而不是常规的 TCP?有什么不同?b) createReadStream 是做什么的?c) pipe() 是做什么的?

如果有人能帮助我,试着让解释更容易些会对我有很大帮助,因为如您所见,我在这个问题上很笨。

非常感谢!

最佳答案

这对于 Stackoverflow 来说有点宽泛,它支持解决特定问题的重点问题。但是我感觉到你的痛苦,所以……

问题 1:Http.get 大致相当于请求一个网页。函数中的 url 是您请求的页面。响应将包括一些内容,例如 HTTP 响应代码,还有(最重要的)页面内容,这可能是您想要的。在后端,这通常用于命中获取数据的 API 而不是实际的网页,但传输机制是相同的。

问题 2:当您打开套接字时,您正在等待其他人请求连接。 (您使用 http.get() 时的方式。当您输出数据时,您向他们发送了一个响应,就像您在问题 1 中收到的响应一样。

问题 3:HTTP 是比 TCP 更高级别的协议(protocol)。这基本上意味着它更具体而 TCP 更通用(学究们会对这种说法提出异议,但这是理解它的一种简单方法)。 HTTP 定义了您在下载网页时使用的诸如 GETPOST 之类的内容。在协议(protocol)栈的底层,HTTP 使用 TCP。您可以只使用 TCP,但您必须做更多的工作来解释传入的请求。HTTP 库会为您完成这项工作。其他协议(protocol)(如 FTP)也使用 TCP,但它们与 HTTP 是不同的协议(protocol)。

关于javascript - 需要对 nodejs 概念进行一些澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45136206/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com