Maison  >  Article  >  interface Web  >  Une brève discussion sur l'utilisation de Node.js pour créer un serveur HTTP simple

Une brève discussion sur l'utilisation de Node.js pour créer un serveur HTTP simple

青灯夜游
青灯夜游avant
2021-06-10 10:12:392156parcourir

Cet article utilisera Node.js pour créer un simple serveur HTTP afin d'essayer de manipuler les ressources informatiques. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Une brève discussion sur l'utilisation de Node.js pour créer un serveur HTTP simple

Qu'est-ce que le service HTTP ?

Qu'est-ce que le protocole HTTP ?

  • Hypertext Transfer Protocol, un protocole de couche application, une convention pour transmettre du texte, des images, de l'audio, de la vidéo et d'autres données hypertextes entre deux points du monde informatique et des spécifications.

[Apprentissage recommandé : "tutoriel nodejs"]

Une requête de page web, qui comprend deux échanges de paquets HTTP :

  • Le navigateur envoie une requête HTTP au serveur HTTP
  • Le serveur HTTP renvoie le paquet HTTP au navigateur

Que fait le service HTTP ?

  • Analysemessage de requête HTTP entrant
  • renvoie message de retour HTTP correspondant

implémentation Un simple serveur HTTP

Créez un nouveau fichier http.js et écrivez le code suivant :

// 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");
})

Commande d'exécution du terminal : node http.js

Une brève discussion sur lutilisation de Node.js pour créer un serveur HTTP simple

Vous pouvez voir que le service a été démarré. Ouvrez http://localhost:4000 dans Chrome :

Une brève discussion sur lutilisation de Node.js pour créer un serveur HTTP simple

Le contenu de response.end() a été affiché sur la page. Un tel simple Le serveur HTTP est implémenté.

fs Le module charge les ressources statiques

Créez un nouveau fichier index.js :

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

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

Exécution du terminal : node index.js, ouvrez le navigateur localhost:3000

Une brève discussion sur lutilisation de Node.js pour créer un serveur HTTP simple

Deux requêtes sont envoyées ici, l'une est la demande de l'url actuelle http://localhost:3000/ l'autre est la demande de l'icône http://localhost:3000/favicon.ico en haut ; coin droit :

Une brève discussion sur lutilisation de Node.js pour créer un serveur HTTP simple

Effectuez ensuite un traitement sur la requête /favicon.ico et renvoyez directement le code d'état 200 puis utilisez le module fs pour traiter 静态资源 ; :

// 加载模块
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 Le contenu du fichier est le suivant :

<!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>

Fonctionnement du terminal : node index.js Démarrer le service :

Une brève discussion sur lutilisation de Node.js pour créer un serveur HTTP simple

Comme vous pouvez le constater, ce serveur HTTP a mis l'ordinateur La ressource statique index.html est donnée au navigateur.

Un serveur HTTP aussi simple qui lit les ressources statiques de l'ordinateur a été implémenté !

Ce serveur HTTP utilise deux modules intégrés de Node.js http et fs. Il existe de nombreux modules dans Node.js qui peuvent nous aider à réaliser des fonctions puissantes, ce qui est exactement le cas. Écosystème Node.js plus puissant.

Le code est le suivant :

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

Pour plus de connaissances liées à la programmation , veuillez visiter :Vidéo de programmation ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer