Home  >  Article  >  Web Front-end  >  A brief discussion on using Node.js to build a simple HTTP server

A brief discussion on using Node.js to build a simple HTTP server

青灯夜游
青灯夜游forward
2021-06-10 10:12:392144browse

This article will use Node.js to build a simple HTTP server to try to manipulate computer resources. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to everyone.

A brief discussion on using Node.js to build a simple HTTP server

#What is HTTP service?

What is the HTTP protocol?

  • Hypertext Transfer Protocol, an application layer protocol, a convention for transmitting text, pictures, audio, video and other hypertext data between two points in the computer world and specifications.

[Recommended learning: "nodejs tutorial"]

A web page request, which contains two HTTP packet exchanges:

  • The browser sends a request HTTP packet to the HTTP server
  • The HTTP server returns the HTTP packet to the browser

What does the HTTP service do?

  • AnalysisIncoming HTTP request message
  • Return corresponding HTTP return message

Implementation A simple HTTP server

Create a new http.js file and write the following code:

// http 是 Node 自带的包,在这里加载引入
const http = require('http')

// 通过 http.createServer 创建一个 Web 静态服务器
http.createServer(function (request, response) {
  // 监听到请求之后所做的操作
  // request 对象包含:用户请求报文的所有内容
  // 我们可以通过request对象,获取用户提交过来的数据

  // response 响应对象,用来响应一些数据
  // 当服务器想要向客户端响应数据的时候,就必须使用response对象
  response.writeHead(200);
  response.end('hello world');
}).listen(4000, function () {
  // 通过 listen 监听端口,开启服务
  console.log("服务器已经启动,可通过以下地址:http://localhost:4000");
})

Terminal running command: node http.js

A brief discussion on using Node.js to build a simple HTTP server

You can see that the service has been started. Open it in Chromehttp://localhost:4000

# The content of A brief discussion on using Node.js to build a simple HTTP serverresponse.end()

has been displayed on the

## page, and such a simple HTTP server has been implemented.

fs Module loads static resources

Create a new

index.js file:

// 加载模块
const http = require('http')
const fs = require('fs');

// 创建服务
http.createServer(function (request, response) {
  console.log(request.url);
  response.writeHead(200);
  response.end();
}).listen(3000)

Terminal Run:

node index.js, the browser opens localhost:3000

A brief discussion on using Node.js to build a simple HTTP server

Two requests are sent here, one is the current The request for url

http://localhost:3000/; the other is the request for icon http://localhost:3000/favicon.ico in the upper right corner:

A brief discussion on using Node.js to build a simple HTTP server

Then do some processing on the request of

/favicon.ico and directly return the 200 status code; then pass fsModule to process static resources:

// 加载模块
const http = require('http')
const fs = require('fs');

// 创建服务
http.createServer(function (request, response) {
  // console.log(request.url);
  // 如果是图标请求则直接返回 200
  if (request.url == '/favicon.ico') {
    response.writeHead(200);
    response.end()
    return
  }

  response.writeHead(200);
  // fs 是文件模块,通过 createReadStream 可以读取本地文件,这里读取的是目录下的 index.html 文件
  // 通过 pipe 写入响应对象
  fs.createReadStream(__dirname + '/index.html').pipe(response)
}).listen(3000)

index.html The content of the file is as follows:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>实现一个简单的HTTP服务器</title>
</head>
<body>
  <div>hello HTTP服务</div>
</body>
</html>

Terminal operation:

node index.js Start the service:

A brief discussion on using Node.js to build a simple HTTP server

You can see that this HTTP server has given the computer’s static resource

index.html to the browser.

Such a simple HTTP server that reads computer static resources has been implemented!

This HTTP server uses two built-in modules of Node.js

http and fs. There are many other modules in Node.js that can help us achieve this. Powerful modules, it is these modules that make the Node.js ecosystem more powerful.

The code is as follows:

https://github.com/V-vincent/node-introduction

For more programming related knowledge, please visit :

Programming Video! !

The above is the detailed content of A brief discussion on using Node.js to build a simple HTTP server. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:juejin.cn. If there is any infringement, please contact admin@php.cn delete