Qu'est-ce qu'un serveur Web ?
Lorsqu'une application (client) a besoin d'une certaine ressource, elle peut demander la ressource via HTTP à un serveur ; le serveur qui fournit la ressource est un serveur Web.
1.1 Première expérience avec le serveur
;1.2 Deux façons de créer un serveur
1.3 Objet de requête
L'objet de requête encapsule toutes les informations transmises par le client à notre serveur.
L'URL de cette requête, le serveur doit effectuer différents traitements selon
la méthode de requête de cette requête, telle que GET, requête POST entrante ; Les paramètres et les méthodes de traitement sont différents,
les en-têtes de cette requête contiendront également certaines informations, telles que les informations client, le format de réception des données, les formats d'encodage pris en charge, etc...
Requête régulière :
Lors de l'envoi d'une requête, le client demandera des données différentes, puis différentes adresses de requête seront transmises. Le serveur doit faire différentes réponses en fonction de différentes adresses de requête.
Si l'adresse de requête de l'utilisateur contient également des paramètres supplémentaires, comment devons-nous les analyser ?
Nous pouvons utiliser le module url.
Parmi eux, le module url fournit des outils utilitaires pour le traitement et l'analyse des URL
Import url const url = require('url')
Supposons que nos données de requête soient :
Le résultat de l'analyse de l'URL par la console est :
Parmi eux, pathname est le dernier chemin que nous devons obtenir. Notre objectif est d'obtenir le nom d'utilisateur et le mot de passe séparément dans la requête.
Importer le module de chaîne de requête const qs = require('querystring');
const http = require("http")const url = require('url')const qs = require('querystring')// 1. Créer un serveur const server = http .createServer((req, res) => { // Utiliser le module intégré const{ pathname,query } = url.parse(req.url) if(chemin d'accès === '/login'){ console.log(requête); console.log(qs.parse(query)); const { nom d'utilisateur, mot de passe } = qs.parse (requête) console.log (nom d'utilisateur, mot de passe); res.end('La demande se termine') }});// 2. Définissez le numéro de port et démarrez le serveur server.listen(8888,'0.0.0.0',()=>{ console.log("Le serveur a démarré avec succès~");})
Dans la spécification Restful (style de conception), nous devons utiliser différentes méthodes de requête pour ajouter, supprimer, modifier et vérifier des données :
Nous pouvons effectuer différents traitements en jugeant différentes méthodes de demande.
Supposons que ce qui suit corresponde aux données de notre requête JSON dans le corps -> Comment faire en sorte que notre serveur obtienne le nom d'utilisateur et le mot de passe ?
content-type est le type de données transportées dans cette requête :
; -length : **La taille et la longueur du fichier
keep-alive :
**accept-encoding : ** informer le serveur, le client Le format de compression de fichier pris en charge par le client, par exemple, les fichiers js peuvent utiliser le codage gzip, correspondant aux fichiers .gz
**accepter :** Informer le serveur que le client peut accepter le type de format de fichier
; *user-agent:** Informations relatives au client ;
1.4 Objet de réponse
Si nous voulons répondre au client avec des données de résultat, nous pouvons le faire de deux manières :
remarque : si nous n'appelons pas end et close, le client attendra le résultat.
Le code d'état Http (Http Status Code) est un code numérique utilisé pour représenter l'état de la réponse Http :
Catégorie | Raison Phrase | |
---|---|---|
1xx | Informatif | La demande acceptée est en cours de traitement |
2xx | Succès | La demande a été traitée normalement |
3xx | Redirection | Une action supplémentaire est requise pour terminer la demande |
4xx | Erreur client Erreur client | Erreur de demande, le serveur ne peut pas traiter la demande |
5xx | Erreur de serveur (erreur de serveur) | Serveur erreur lors du traitement de la demande |
Codes de réponse courants :
Description | du code d'état | Description | de l'état|
---|---|---|---|
200 | OK | Demande réussie. Généralement utilisé pour les requêtes GET et POST. | |
400 | Bad Request est | une erreur de syntaxe dans la requête du client. | |
401 | La requêtenon autorisée | nécessite une authentification de l'utilisateur. | |
403 | Interdit | . | . |
404 | Introuvable. | Le serveur ne peut pas traiter la demande basée sur la demande du client. Demande qu'une ressource (page Web) soit trouvée. Grâce à ce code, les concepteurs de sites Web peuvent créer une page personnalisée de « La ressource que vous avez demandée est introuvable ». | |
500 | Erreur interne du serveur | Le serveur a une erreur interne et ne peut pas terminer la demande | |
en | raison | d'une surcharge ou d'une maintenance du système. , le serveur est temporairement incapable de traiter la demande du client. La durée du délai peut être incluse dans le code d'état défini dans l'en-tête Retry-After du serveur |
:
renvoie les informations d'en-tête. Il existe deux manières principales :