Was ist ein Webserver?
Wenn eine Anwendung (Client) eine bestimmte Ressource benötigt, kann sie die Ressource über HTTP an einen Server anfordern; der Server, der die Ressource bereitstellt, ist ein Webserver.
1.1 Erste Erfahrung mit dem Server
1.2 Zwei Möglichkeiten zum Erstellen eines Servers
1.3 Anforderungsobjekt
Das Anforderungsobjekt kapselt alle vom Client an unseren Server übergebenen Informationen.
Der Server muss je nach Anforderungsmethode dieser Anforderung unterschiedliche Verarbeitungen durchführen,
z. B. eingehende GET- und POST-Anforderungen Die Parameter und Verarbeitungsmethoden sind unterschiedlich;
die Header dieser Anfrage enthalten auch einige Informationen, wie z. B. Clientinformationen, Format für den Datenempfang, unterstützte Kodierungsformate usw.
Reguläre Anfrage:
Beim Senden einer Anfrage fordert der Client unterschiedliche Daten an und übergibt dann unterschiedliche Anfrageadressen. Der Server muss unterschiedliche Antworten basierend auf unterschiedlichen Anfrageadressen geben.
Wenn die Anforderungsadresse des Benutzers auch einige zusätzliche Parameter enthält, wie sollten wir diese analysieren?
Wir können das URL-Modul verwenden.
Unter anderem stellt das URL-Modul Hilfstools für die URL-Verarbeitung und -Analyse bereit.
URL importieren const url = require('url')
Angenommen, unsere Anforderungsdaten lauten:
Das Ergebnis der Konsolenanalyse der URL ist:
Unter diesen ist Pfadname der letzte Pfad, den wir erhalten müssen. Unser Ziel ist es, den Benutzernamen und das Passwort separat in der Abfrage zu erhalten.
Querystring-Modul importieren const qs = require('querystring');
const http = require("http")const url = require('url')const qs = require('querystring')// 1. Erstellen Sie einen Server const server = http .createServer((req, res) => { // Integriertes Modul verwenden const{ pathname,query } = url.parse(req.url) if(pathname === '/login'){ console.log(Abfrage); console.log(qs.parse(query)); const { Benutzername, Passwort } = qs.parse(query) console.log(Benutzername,Passwort); res.end('Anfrage endet') }});// 2. Stellen Sie die Portnummer ein und starten Sie den Server server.listen(8888,'0.0.0.0',()=>{ console.log("Server erfolgreich gestartet~");})
In der Restful-Spezifikation (Designstil) sollten wir verschiedene Anfragemethoden zum Hinzufügen, Löschen, Ändern und Überprüfen von Daten verwenden:
indem wir unterschiedliche Anfragemethoden beurteilen.
Angenommen, das Folgende sind unsere JSON-Anforderungsdaten im Hauptteil -> Wie kann unser Server den Benutzernamen und das Passwort erhalten?
„content-type“ ist der in dieser Anfrage enthaltene Datentyp:
; -length: **Die Größe und Länge der Datei
keep-alive:
**Accept-Encoding: ** Informieren Sie den Server und den Client über das vom Client unterstützte Dateikomprimierungsformat. Beispielsweise können JS-Dateien die GZIP-Kodierung verwenden, entsprechend .gz-Dateien.
**Akzeptieren:** Informieren Sie den Server darüber, dass der Client den Dateiformattyp akzeptieren kann
. *user-agent:** Clientbezogene Informationen ;
1.4 Antwortobjekt
Wenn wir dem Client mit Ergebnisdaten antworten möchten, können wir dies auf zwei Arten tun:
Hinweis: Wenn wir end und close nicht aufrufen, wartet der Client auf das Ergebnis.
Der HTTP-Statuscode (HTTP-Statuscode) ist ein numerischer Code, der zur Darstellung des HTTP-Antwortstatus verwendet wird:
Kategorie | Grundphrase | |
---|---|---|
1xx | Informativ | Die akzeptierte Anfrage wird verarbeitet. |
2xx | Erfolgreich | Die Anfrage wurde normal verarbeitet. |
3xx | Umleitung. | Zusätzliche Aktion ist erforderlich, um die Anfrage abzuschließen. |
4xx | Clientfehler. Clientfehler | . Anfragefehler. Der Server kann die Anfrage nicht verarbeiten. |
5xx | Serverfehler (Serverfehler) | Server Fehler bei der Verarbeitung der Anfrage. |
Allgemeine Antwortcodes:
Statuscode- | Beschreibung. | Statusbeschreibung |
---|---|---|
200 | OK. | Anfrage erfolgreich. Wird im Allgemeinen für GET- und POST-Anfragen verwendet. |
Der | Server | kann |
die Anfrage | nicht | verstehen |
403 | Unzulässige | Anfrage |
gefunden | ||
. | Der | Server kann die Anfrage nicht verarbeiten, die auf der Anfrage des Clients basiert. Mit diesem Code können Website-Designer eine personalisierte Seite mit der Meldung „Die von Ihnen angeforderte Ressource kann nicht gefunden werden“ einrichten. |
Der | Server hat eineninternen | Fehler und kann die Anforderung |
Überlastung | oder Systemwartung | nicht |
, kann der Server die Anfrage des Clients vorübergehend nicht verarbeiten. Die Länge der Verzögerung kann im Statuscode enthalten sein, der im Retry-After-Header des Servers festgelegt ist |
:
gibt Header-Informationen zurück. Es gibt zwei Hauptmethoden: