Web- und Netzwerktechnologie

Theorien zu den verschiedenen Systemen in der Web- und Netzwerktechnologie

Theorien zu den verschiedenen Systemen in der Web- und Netzwerktechnologie


Kartei Details

Karten 268
Lernende 15
Sprache Deutsch
Kategorie Informatik
Stufe Universität
Erstellt / Aktualisiert 17.12.2022 / 13.07.2023
Weblink
https://card2brain.ch/box/20221217_web_und_netzwerktechnologie
Einbinden
<iframe src="https://card2brain.ch/box/20221217_web_und_netzwerktechnologie/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Das http Protokoll ist ein Protokoll des Internet Layers.

Ein TCP-Port muss in jedem HTTP-Request explizit angegeben werden.

Eine IP-Adresse (oder DNS-Name) muss in jedem HTTP-Request explizit angegeben werden.

Ein HTTP-Request startet immer mit "http(s)://".

Request-Parameter (=Query-Parameter) werden immer mit einem "?" eingeführt.

Jede HTTP-Response hat einen Status-Code.

Welche Aussagen zu HTTP-POST sind korrekt?

Ein HTTP-Request kann auch von einer Server-Applikation initiiert werden.

Was ist ein Webserver?

  • Als Webserver (englische Schreibweise: „web server“; auch „HTTP-Server“ genannt) bezeichnet man jene Server, die zur Verbreitung von Webinhalten im Inter-oder Intranet dienen (englisch: „toserve“ = dienen/bedienen).

  • Als Teil eines Rechnernetzwerks übertragen sie Dokumente an sogenannte Clients -beispielsweise eine Webseite an einen Webbrowser.

Welchen Content kann ein Webserver bereitstellen?

  • Ein Webserver kann statischen und/oder dynamischen Inhalt (Content) bereitstellen.

    • Statisch bedeutet, dass der Inhalt so angezeigt wird, wie er ist.

    • Dynamisch bedeutet, dass  Inhalte auf der Serverseite dynamisch aktualisiert und verändert werden können.

  • Ein statischer Webserver besteht aus einem Computer und HTTP-Software. Er wird als statisch bezeichnet, weil der Server die gehosteten Dateien unverändert an einen Browser sendet.

Welches ist die Aktuelle HTML Dokumente Norm?

  • HTML 5 ist die aktuelle Norm.
    • ... aber auch HTML 4.01 ist noch anzutreffen.

Einfacher HTTP Server:

Keine Lösung.

Ein eigener einfacher HTTP Server:

Keine Lösung

SimpleHttpRequestHandler:

Keine Lösung

Was ist ein Dynamic Webserver?

  • Als Webserver (englische Schreibweise: „web server“; auch „HTTP-Server“ genannt) bezeichnet man jene Server, die zur Verbreitung von Webinhalten im Inter-oder Intranet dienen (englisch: „toserve“ = dienen/bedienen).

  • Als Teil eines Rechnernetzwerks übertragen sie Dokumente an sogenannte Clients -beispielsweise eine Webseite an einen Webbrowser.

Welchen Content Kann ein Dynamischer Webserver bereitstellen?

  • `Ein Webserver kann dynamischen Inhalt (Content) bereitstellen.
    • Dynamisch bedeutet, dass  Inhalte auf der Serverseite dynamisch aktualisiert und verändert werden kann.

  • Zentral dabei ist die Klasse "SimpleHttpRequestHandler"

    • Der Handler verarbeitet HTTP Requestsund generiert HTTP Responses.

    • Diese HTTP Messages sind spezifiziert.

    • Die Spezifikation muss unbedingt eingehalten werden, so dass sich die Kommunikationspartner verstehen können.

HTTP Messeages: Spezifikationen

Keine Lösung

HTTP-Methoden im SimpleHttpRequestHandler

Keine Lösung

Welche In/Out-Streams gibt es im SimpleHttpRequestHandler?

  • Die Daten/Payload für die Response werden in den Output Stream "wfile" geschrieben.

    • wfile: Contains the output stream for writing a response back to the client.

  • Die Daten/Payload des Requests werden vom Input Stream "rfile" gelesen.

    • rfile: An input stream, ready to read from the start of the optional input data.

Aus was setzt sich ein HTML-Response zusammen?

  • Die HTML-Response setzt sich zusammen aus:

    • Status Code, z.B. 200

    • Content Type, z.B. "text/html"

    • Content, z.B. "<h2>Hello</h2>

Dynamische HTML-Response

Keine Lösung

Wie verarbeite ich Query-Parameter?

  • urllib.parse.urlparse(url_string, ...)

    • Parse a URL into six components.

  • urllib.parse.parse_qs(query_string, ...)

    • Parse a query string given as a string argument. Data are returned as a dictionary. The dictionary keys are the unique query variable names and the values are lists of values for each name.

Query-Parameter verarbeiten. Programmbeispiel.

Keine Lösung

Was braucht es um einen POST Request zu verarbeiten?

  • Der Payload wird über den Input Stream "rfile" eingelesen.

  • In der Methode "rfile.read(size)" muss die Anzahl der Bytes angegeben werden.

  • Die Anzahl der Bytes sind im Request-Header unter dem Key "Content-Length" angegeben.

POST Request verarbeiten Programmbeispiel.

Keine Lösung

Was ist üblich in der Praxis in bezug uf Content und Design?

  • Es ist gute Praxis, HTML, CSS (und JavaScript) voneinander zu trennen, da dies die Verwaltung der Website stark erleichtert, da es wird schwierig wird, innerhalb in einer langen Datei, die alle HTML, CSS und JavaScript-Statements enthält, Code zu finden.

  • HTML legt die Struktur der Webpage fest.

  • CSS legt das Design der Webpage fest.

  • JavaScript enthält die Logik auf der Clientseite, d.h. die Logik, welche im Browser ausgeführt wird.

Beispiel: Separate Content and Design. Welcher Code ist was?

Links HTML Struktur

 

Rechts CSS Design

Was beschreibt das link-element?

Das link-Element beschreibt auf eher abstrakte Weise, dass zwischen dem aktuellen Dokument (hello.html) und einem anderen(app.js) eine Beziehung besteht, und um welche Art von Beziehung es sich dabei handelt (stylesheet).

Auf Was verweisst folgender Programmcode?

 

  • <link href="app.css" rel="stylesheet" />

  • Das <link>-Element verweist auf eine externe Ressource, die mittels HTTP GET-Request geladen werden muss.

  • Ein <link>-Element wird normalerweise in die <head>-Sektion der HTML-Page geschrieben.

  • Das "rel"Attribute beschreibt die Beziehung (Relationship) zwischen HTML-Page und der externen Ressource.

Forderung an HTTPRequestHandler

 

Wie ist das Laden von externen Files aus dem Filesystem möglich?

Siehe Bild

Forderung an HTTPRequestHandler

Wie ist das laden von HTML-und CSS-Files zu unterstützen?

Siehe Bild

Wue kann ich ein Template verarbeiten?

  • Ein Template ist eine Vorlage einer HTML-Page.

  • Ein Template kann Platzhalter für dynamische Werte enthalten.

  • Ein Template wird zur Laufzeit zu einer validen HTML-Page, in dem die Platzhalter durch aktuelle Werte ersetzt werden.

    • -> Es braucht eine Notationen für die Platzhalter.

    • -> Es braucht eine Logik, um die Platzhalter mit aktuellen Werte zu ersetzen.

Von was ist die Notation bei einem Template-Engine abhängig?

  • Die Notation ist abhängig von der eingesetzten Template-Engine.

  • Beispiele von Template-Engines:

    • Mustache (Implementation für verschiedene Sprachen)

      • {{message}}

    • Jinja (Python / Flask)

      • {{ foo.bar}}

    • Thymeleaf (Java / Spring)

      • <th th:text="#{msgs.headers.name}">Name</th>

Was ist ein Template-Processor?

Ein Template-Processor (auch als Template-Engine oder Template-Parser bezeichnet) ist eine Software, die Templates (HTML-Template) mit aktuellen Daten kombiniert, um eine valides Dokument (HTML-Page) zu erzeugen.

Template-Processor Beispiel.

Keine Lösung

Was bedeutet der link-Tag in der head-Sektion einer HTML Page?

Eine HTML-Page mit einem link-Tag führt beim Laden zu?

HTML Struktur und Design trennt man mit?

Ein HTML-Template ist?

Die Notation für dyn.Platzhalter in einem HTML-Template ist standardisiert