📜  简单的 http 服务器 (1)

📅  最后修改于: 2023-12-03 15:41:08.952000             🧑  作者: Mango

简单的 HTTP 服务器

本文将介绍如何编写一个简单的 HTTP 服务器,该服务器能够接受 HTTP 请求并响应相应的内容。我们使用 Node.js 编写服务器。

准备工作

你需要安装 Node.js 环境,如果还没有安装,可以从 官网 下载并安装。

编写服务器

我们创建一个名为 server.js 的文件,并在其中编写代码。

首先,我们需要引入 Node.js 的 http 模块:

const http = require('http');

接着,我们可以创建一个服务器:

const server = http.createServer((req, res) => {
  // 处理请求
});

在响应请求之前,我们需要解析请求的内容,然后根据其内容发送相应的响应。我们可以使用 Node.js 的 url 模块来解析请求的 URL:

const url = require('url');

const server = http.createServer((req, res) => {
  const { pathname } = url.parse(req.url);
  // 处理请求
});

现在,我们可以根据解析的 URL 路径来发送不同的响应了。比如,如果请求的 URL 路径是 /hello,我们可以发送一个简单的文本响应:

const server = http.createServer((req, res) => {
  const { pathname } = url.parse(req.url);

  if (pathname === '/hello') {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Hello, World!\n');
  } else {
    res.writeHead(404);
    res.end();
  }
});

现在,我们编写的服务器可以接受并处理 HTTP 请求了。我们可以保存代码文件,然后在命令行中运行以下命令来启动服务器:

node server.js

然后,在浏览器中访问 http://localhost:3000/hello,你应该能够看到一个简单的 "Hello, World!" 文本响应。

总结

在本文中,我们介绍了如何编写一个简单的 HTTP 服务器,用 Node.js 实现。我们学习了如何解析 HTTP 请求的内容,并根据其内容发送相应的响应。

完整的代码示例:

const http = require('http');
const url = require('url');

const server = http.createServer((req, res) => {
  const { pathname } = url.parse(req.url);

  if (pathname === '/hello') {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Hello, World!\n');
  } else {
    res.writeHead(404);
    res.end();
  }
});

server.listen(3000, () => {
  console.log('Server started on port 3000');
});

高亮代码片段:

const http = require('http');
const url = require('url');

const server = http.createServer((req, res) => {
  const { pathname } = url.parse(req.url);

  if (pathname === '/hello') {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Hello, World!\n');
  } else {
    res.writeHead(404);
    res.end();
  }
});

server.listen(3000, () => {
  console.log('Server started on port 3000');
});