Node.js-Tutorium: Hello World: HTTP: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Zeile 41: Zeile 41:


Führen Sie diese Datei in [[WebStorm]] oder in der [[Bash]]-Konsole auf und öffnen Sie dann
Führen Sie diese Datei in [[WebStorm]] oder in der [[Bash]]-Konsole auf und öffnen Sie dann
in Ihrem Browser die [[URL]] <code>http://localhost:777/</code>.
in Ihrem Browser die [[URL]] <code>http://localhost:7777/</code>.
 
===Analyse des Codes===
 
Die [http://nodejs.org/api/http.html Node-Bibliothek <code>http</code>] stellt die Methode
<code>createServer</code> zur verfügung, mit der ein neuer HTTP-Server erstellt werden kann.
Ein neu erstellter Server wird gestartet, indem ihm die Nachricht <code>listen(&lt;POTNUMMER&gt;)</code>
geschickt wird.
 
Sobald dies geschen ist, horcht der Webserver auf Port  <code>&lt;POTNUMMER&gt;</code> (in unserem Fall <code>7777</code>)
auf [[HHTP-Request]]s. Sobald ein Browser oder sonst irgend ein Client eine derartige Anfrage schickt, wird die
[[Callback]]-Funktion aufgerufen, die bei der Definition des Servers angegeben wurde. Diese Funktion
muss zwei Parameter haben: <code>p_request</code> und <code>p_response</code>.
Das Objekt <code>p_request</code> enthält alle Daten, die der Client an den Server schickt,
in das Objekt <code>p_response</code> schreibt der Server seine antwort.
 
Eine Server-Antwort besteht immer aus zwei Teilen: einem [[HTTP-Header]] und einem [[HTTP-Content]].
Der HTTP-Header enthält Metainformationen:
 
* Den [[HTTP-Status-Code]] (z.B. 200 für „OK“ = „Die Anfrage konnte erfolgreich bearbeitet werden und das Anfrage-Ergebnis steh im Contetn-Bereich.“)
* Den <code>Content-Type</code> (z.B. <code>text/html; charset=utf-8</code>)
* Die <code>Content-Length</code> (die Länge der Antwort im Content-Bereich)
* etc.
 
Der eigentliche Content ist dann eine beliebige Folge von Zeichen, in userem Fall ein HTML-Code.
Der Browser liest davon so viele Zeichen, wie im Header unter dem Attribut <code>Content-Length</code> angegeben wurden.
Diese Attribut wird vom Node-HTTP-Server automatisch ermittelt.


==Fortsetzung des Tutoriums==
==Fortsetzung des Tutoriums==

Version vom 27. Oktober 2014, 18:52 Uhr

Dieser Artikel erfüllt die GlossarWiki-Qualitätsanforderungen nur teilweise:

Korrektheit: 4
(großteils überprüft)
Umfang: 1
(zu gering)
Quellenangaben: 5
(vollständig vorhanden)
Quellenarten: 5
(ausgezeichnet)
Konformität: 5
(ausgezeichnet)

Node.js-Tutorium Hello World

Übersicht: Teil 1: Konsole | Teil 2: HTTP | Teil 3: TCP

Use Cases

Es soll ein einfacher Node.js-Web-Server erstellt werden, der unter der URL http://localhost:7777/ eine HTML-Seite mit dem Inhalt Hallo, Welt! als Ergebnis liefert.

Auf der Seite soll sich außerdem ein Eingabefeld und ein Butoon befinden. Wenn der Benutzer seinen Namen eingibt und auf den Button klickt, wird er zusätzlich mit seinem Namen begrüßt: Hallo, <BENUTZERNAME>!.

Ein einfacher HTTP-Server, der Hallo, Welt! ausgibt

Erstellen Sie eine Datei hello-world-http-01.js und fügen Sie folgenden Code ein:

'use strict';

require('http')
  .createServer
    ( function (p_request, p_response)
      { p_response.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
        p_response.write
                   (['<!DOCTYPE html>',
                     '<html>',
                       '<head>',
                         '<title>Hallo-Welt-Server</title>',
                       '</head>',
                       '<body>',
                         '<p>Hallo, Welt!</p>',
                       '</body>',
                     '</html>'
                    ].join('')
                   );
        p_response.end();
      }
    )
  .listen(7777);

Führen Sie diese Datei in WebStorm oder in der Bash-Konsole auf und öffnen Sie dann in Ihrem Browser die URL http://localhost:7777/.

Analyse des Codes

Die Node-Bibliothek http stellt die Methode createServer zur verfügung, mit der ein neuer HTTP-Server erstellt werden kann. Ein neu erstellter Server wird gestartet, indem ihm die Nachricht listen(<POTNUMMER>) geschickt wird.

Sobald dies geschen ist, horcht der Webserver auf Port <POTNUMMER> (in unserem Fall 7777) auf HHTP-Requests. Sobald ein Browser oder sonst irgend ein Client eine derartige Anfrage schickt, wird die Callback-Funktion aufgerufen, die bei der Definition des Servers angegeben wurde. Diese Funktion muss zwei Parameter haben: p_request und p_response. Das Objekt p_request enthält alle Daten, die der Client an den Server schickt, in das Objekt p_response schreibt der Server seine antwort.

Eine Server-Antwort besteht immer aus zwei Teilen: einem HTTP-Header und einem HTTP-Content. Der HTTP-Header enthält Metainformationen:

  • Den HTTP-Status-Code (z.B. 200 für „OK“ = „Die Anfrage konnte erfolgreich bearbeitet werden und das Anfrage-Ergebnis steh im Contetn-Bereich.“)
  • Den Content-Type (z.B. text/html; charset=utf-8)
  • Die Content-Length (die Länge der Antwort im Content-Bereich)
  • etc.

Der eigentliche Content ist dann eine beliebige Folge von Zeichen, in userem Fall ein HTML-Code. Der Browser liest davon so viele Zeichen, wie im Header unter dem Attribut Content-Length angegeben wurden. Diese Attribut wird vom Node-HTTP-Server automatisch ermittelt.

Fortsetzung des Tutoriums

Sie sollten nun Teil 3 des Tutoriums bearbeiten.

Quellen

Siehe auch