[Inhalt] Typos; Korrekturen
Typos korrigiert und Inhalt teilweise ergänzt/korrigiert.
This commit is contained in:
		
							parent
							
								
									fd9601ec83
								
							
						
					
					
						commit
						b4ab50ac3f
					
				
					 6 changed files with 95 additions and 88 deletions
				
			
		| 
						 | 
				
			
			@ -43,82 +43,43 @@ Der \enquote{Hyperlink} ist ein Verweis mit automatischer Verweisauflösung. Er
 | 
			
		|||
    \item \enquote{Erfinder} des Hyperlinks: Vannevar Bush, 1945
 | 
			
		||||
    \item siehe \enquote{As we may think}, Atlantic Monthly, 1945
 | 
			
		||||
    \item siehe Maschine \enquote{memex} (Memory extension)
 | 
			
		||||
          $\Rightarrow$ Information auf Mikrofilm mit Verweismöglichkeit inkl. Automatischer Verweisauflösung
 | 
			
		||||
          $\Rightarrow$ Information auf Mikrofilm mit Verweismöglichkeit inkl. automatischer Verweisauflösung
 | 
			
		||||
\end{itemize}
 | 
			
		||||
 | 
			
		||||
\subsection{Zwei Eigenschaften des \acs{WWW} (\enquote{Erfolgsfaktoren})\label{sec:lokations_medienunabhaengigkeit}\index{WWW}}
 | 
			
		||||
 | 
			
		||||
\begin{enumerate}[noitemsep]
 | 
			
		||||
\begin{enumerate}
 | 
			
		||||
    \item \textbf{Lokationsunabhängigkeit}
 | 
			
		||||
 | 
			
		||||
        $\Rightarrow$ unabhängig von der Lokation der Information und der Suchenden;
 | 
			
		||||
        die Information kann immer \enquote{auf die gleiche Weise} beschafft werden.
 | 
			
		||||
        Unabhängig von der Lokation der Information und des Suchenden, kann die
 | 
			
		||||
        Information immer \enquote{auf die gleiche Weise} beschafft werden.
 | 
			
		||||
 | 
			
		||||
        Beim Design des \acs{WWW} von \href{https://de.wikipedia.org/wiki/Tim_Berners-Lee}{Tim Berners-Lee} geplant
 | 
			
		||||
        Beim Design des \acs{WWW} von \href{https://de.wikipedia.org/wiki/Tim_Berners-Lee}{Tim Berners-Lee} geplant.
 | 
			
		||||
 | 
			
		||||
    \item \textbf{Medienunabhängigkeit}
 | 
			
		||||
        $\Rightarrow$  Die Information kann grundsätzlich in verschiedenen Medienformen
 | 
			
		||||
    \item \textbf{Medienunabhängigkeit} \hfill \newline
 | 
			
		||||
        Die Information kann grundsätzlich in verschiedenen Medienformen
 | 
			
		||||
        (Text, Bild, Video, Audio, \ldots ) vorliegen.
 | 
			
		||||
 | 
			
		||||
        Ursprünglich nicht geplant und nicht im Web enthalten. Belege:
 | 
			
		||||
        \begin{itemize}[noitemsep]
 | 
			
		||||
        \begin{itemize}
 | 
			
		||||
            \item HTML: Hyper \textbf{Text} Markup Language
 | 
			
		||||
            \item HTTP: Hyper \textbf{Text} Transfer Protocol
 | 
			
		||||
            \item $\Rightarrow$  in ersten Versionen \textbf{nur} Unterstützung von Text vorhanden! (\textbf{Klausurrelevant!})
 | 
			
		||||
            \item[$\Rightarrow$] in ersten Versionen \textbf{nur} Unterstützung von Text vorhanden! (\textbf{Klausurrelevant!})
 | 
			
		||||
        \end{itemize}
 | 
			
		||||
 | 
			
		||||
\end{enumerate}
 | 
			
		||||
 | 
			
		||||
\bigskip
 | 
			
		||||
\bigskip
 | 
			
		||||
\bigskip
 | 
			
		||||
\bigskip
 | 
			
		||||
\bigskip
 | 
			
		||||
\bigskip
 | 
			
		||||
\bigskip
 | 
			
		||||
 | 
			
		||||
\begin{table}[h]
 | 
			
		||||
    \begin{tabular}{c|p{34mm}|p{30mm}|p{75mm}}
 | 
			
		||||
        Nr.  & Deutsch  & Englisch  & Beschreibung \\
 | 
			
		||||
        \midrule
 | 
			
		||||
 | 
			
		||||
        7 & Anwendungsschicht & Application Layer  & Realisierung des Kommunikationsmodells für die jeweilige Anwendung (Client/Server; Peer-to-Peer) \\
 | 
			
		||||
        \midrule
 | 
			
		||||
 | 
			
		||||
        6 & Darstellungsschicht  & Presentation Layer & Zeichen-/Anwendungskodierung \\
 | 
			
		||||
        \midrule
 | 
			
		||||
 | 
			
		||||
        5 & Kommunikations-\newline steuerungsschicht (besser nicht: Sitzungsschicht) & Session Layer & Sychronisierung der Anwendung; Transaktionssteuerung; (\zB RPC Protokoll) \\
 | 
			
		||||
        \midrule
 | 
			
		||||
 | 
			
		||||
        4 & Transportschicht  & Transport Layer & Verbindungen; Vollständigkeit/Fehlerfreiheit/Reihenfolge; Port-/Anwendungsadressierung; (\acs{TCP}/\acs{UDP})  \\
 | 
			
		||||
        \midrule
 | 
			
		||||
 | 
			
		||||
        3 & Vermittlungsschicht & Network Layer & Wegewahl/Routing; Adressierung (mit IP-Adresse) \\
 | 
			
		||||
        \midrule
 | 
			
		||||
 | 
			
		||||
        2 & Sicherungsschicht  & Data Link Layer  &  \href{https://de.wikipedia.org/wiki/Logical_Link_Control}{LLC}: Logical Link Control (Integritätsüberprüfung) \\
 | 
			
		||||
        \midrule
 | 
			
		||||
 | 
			
		||||
          &  &  &  \href{https://de.wikipedia.org/wiki/Media_Access_Control}{MAC}: Medium Access Control (Adressierung mit \href{https://de.wikipedia.org/wiki/MAC-Adresse}{MAC-Adresse}); Regelung des Zugangs auf das \enquote{shared-medium} \\
 | 
			
		||||
        \midrule
 | 
			
		||||
 | 
			
		||||
        1 & Bitübertragungs-\newline schicht  & Physical Layer  & Signalkodierung ; Stecker/Kabelform
 | 
			
		||||
    \end{tabular}
 | 
			
		||||
    \caption{OSI-7-Schichten-Modell}
 | 
			
		||||
    \label{tbl:osi_7_schichten}
 | 
			
		||||
\end{table}
 | 
			
		||||
 | 
			
		||||
\newpage
 | 
			
		||||
\section{ISO-OSI-7-Schichten-Architektur}
 | 
			
		||||
 | 
			
		||||
Die 7 Schichten des ISO-OSI-7-Schichten-Architektur\index{OSI-7-Schichten-Architektur} werden in \autoref{tbl:osi_7_schichten} auf Seite \pageref{tbl:osi_7_schichten} dargestellt.
 | 
			
		||||
Die 7 Schichten des ISO-OSI-7-Schichten-Architektur\index{OSI-7-Schichten-Architektur} werden in \autoref{tbl:osi_7_schichten} dargestellt.
 | 
			
		||||
 | 
			
		||||
\textbf{Hinweis}: Schicht 2 kann unterteilt werden.
 | 
			
		||||
 | 
			
		||||
\begin{itemize}[noitemsep]
 | 
			
		||||
    \item Ab der Transportschicht werden nur noch Ende zu Ende Verbindungen betrachtet.
 | 
			
		||||
    \item \textit{siehe} Wikipedia\footnote{\url{https://de.wikipedia.org/wiki/OSI-Modell}}
 | 
			
		||||
    \item \textit{siehe} Wikipedia (\url{https://de.wikipedia.org/wiki/OSI-Modell})
 | 
			
		||||
\end{itemize}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -132,3 +93,38 @@ Die 7 Schichten des ISO-OSI-7-Schichten-Architektur\index{OSI-7-Schichten-Archit
 | 
			
		|||
\end{tabular}
 | 
			
		||||
 | 
			
		||||
\acs{HTTP} als Anwendungsprotokoll des 4-Schichten-Internet-Modells benötigt als unterliegendes Protokoll der Transportschicht \acs{TCP} (\acs{UDP} geht nicht!).
 | 
			
		||||
 | 
			
		||||
\medskip
 | 
			
		||||
\begin{table}[h!]
 | 
			
		||||
	\hspace*{-6mm}
 | 
			
		||||
	\begin{tabular}{c|p{33mm}|p{30mm}|p{89mm}}
 | 
			
		||||
		Nr.  & Deutsch  & Englisch  & Beschreibung \\
 | 
			
		||||
		\midrule
 | 
			
		||||
		
 | 
			
		||||
		7 & Anwendungsschicht & Application Layer  & Realisierung des Kommunikationsmodells für die jeweilige Anwendung (Client/Server; Peer-to-Peer) \\
 | 
			
		||||
		\midrule
 | 
			
		||||
		
 | 
			
		||||
		6 & Darstellungsschicht  & Presentation Layer & Zeichen-/Anwendungskodierung \\
 | 
			
		||||
		\midrule
 | 
			
		||||
		
 | 
			
		||||
		5 & Kommunikations-\newline steuerungsschicht (besser nicht: Sitzungsschicht) & Session Layer & Sychronisierung der Anwendung; Transaktionssteuerung; (\zB RPC Protokoll) \\
 | 
			
		||||
		\midrule
 | 
			
		||||
		
 | 
			
		||||
		4 & Transportschicht  & Transport Layer & Verbindungen; \newline Vollständigkeit/Fehlerfreiheit/Reihenfolge; \newline
 | 
			
		||||
		Port-/Anwendungsadressierung; (\acs{TCP}/\acs{UDP})  \\
 | 
			
		||||
		\midrule
 | 
			
		||||
		
 | 
			
		||||
		3 & Vermittlungsschicht & Network Layer & Wegewahl/Routing; Adressierung (mit IP-Adresse) \\
 | 
			
		||||
		\midrule
 | 
			
		||||
		
 | 
			
		||||
		2 & Sicherungsschicht  & Data Link Layer  &  \href{https://de.wikipedia.org/wiki/Logical_Link_Control}{LLC}: Logical Link Control (Integritätsüberprüfung) \\
 | 
			
		||||
		\midrule
 | 
			
		||||
		
 | 
			
		||||
		&  &  &  \href{https://de.wikipedia.org/wiki/Media_Access_Control}{MAC}: Medium Access Control (Adressierung mit \href{https://de.wikipedia.org/wiki/MAC-Adresse}{MAC-Adresse}); Regelung des Zugangs auf das \enquote{shared-medium} \\
 | 
			
		||||
		\midrule
 | 
			
		||||
		
 | 
			
		||||
		1 & Bitübertragungs-\newline schicht  & Physical Layer  & Signalkodierung; Stecker/Kabelform
 | 
			
		||||
	\end{tabular}
 | 
			
		||||
	\caption{OSI-7-Schichten-Modell}
 | 
			
		||||
	\label{tbl:osi_7_schichten}
 | 
			
		||||
\end{table}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,17 +1,18 @@
 | 
			
		|||
\chapter{\acf{HTTP}}\index{HTTP}\label{sec:http}
 | 
			
		||||
 | 
			
		||||
\textit{Was ist ein Protokoll\index{Protokoll}?} \newline
 | 
			
		||||
\textit{\textbf{Was ist ein Protokoll?}} \index{Protokoll} \newline
 | 
			
		||||
Ein Protokoll ist verbindliche Vereinbarung (Regeln), wie zwei (oder mehr) Teilnehmer miteinander kommunizieren.
 | 
			
		||||
 | 
			
		||||
\section{HTTP 0.9 (1991) - Erste Version}\label{http09}
 | 
			
		||||
Request:  \code{GET /pdf/zur/ressource}  \newline
 | 
			
		||||
Response: \code{<Inhalt der Ressource>}  \newline
 | 
			
		||||
Response: \code{<Inhalt der Ressource>}  
 | 
			
		||||
 | 
			
		||||
Problem: Nur Plain-Text und \acs{HTML} (erkennbar am Anfang \html{<html>}) sind erlaubt und möglich. \newline
 | 
			
		||||
Problem: Fehler sind nicht sicher erkennbar.
 | 
			
		||||
 | 
			
		||||
\section{HTTP 1.0 (1992)}\label{sec:http10}
 | 
			
		||||
Request: \code{GET /pdf/zur/ressource HTTP/1.0} \newline
 | 
			
		||||
Response: beginnt mit einer Statuszeile: \code{HTTP/1.0 <statuscode> <textuelle Beschreibung des statuscodes; Reason String>}
 | 
			
		||||
Response: beginnt mit einer Statuszeile: \code{HTTP/1.0 <statuscode> <textuelle Beschreibung des statuscodes; Reason String>}, danach Response-Header.
 | 
			
		||||
 | 
			
		||||
\subsection{Status Codes}\label{sec:statuscodes}\index{HTTP!Statuscode}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -23,7 +24,7 @@ Response: beginnt mit einer Statuszeile: \code{HTTP/1.0 <statuscode> <textuelle
 | 
			
		|||
 | 
			
		||||
\begin{itemize}[noitemsep]
 | 
			
		||||
    \item \textbf{\code{1xx}}: Informational Codes  \newline
 | 
			
		||||
        \hspace*{6mm} $\Rightarrow$ Zur Anzeige, dass weitere Daten folgen (Verhinderung von Time-Outs).
 | 
			
		||||
        \hspace*{6mm} $\Rightarrow$ Zur Anzeige, dass weitere Daten folgen (Verhinderung von Timeouts).
 | 
			
		||||
 | 
			
		||||
    \item \textbf{\code{2xx}}:  Successful Client Requests
 | 
			
		||||
        \begin{itemize}[noitemsep]
 | 
			
		||||
| 
						 | 
				
			
			@ -44,8 +45,9 @@ Response: beginnt mit einer Statuszeile: \code{HTTP/1.0 <statuscode> <textuelle
 | 
			
		|||
        \begin{itemize}[noitemsep]
 | 
			
		||||
            \item \code{400} $\Rightarrow$ Bad Request $\Rightarrow$ Der Request war nicht korrekt.
 | 
			
		||||
            \item \code{401} $\Rightarrow$ Authorization Required $\Rightarrow$ Eine Autorisierung ist erforderlich.
 | 
			
		||||
            \item \code{403} $\Rightarrow$ Forbidden $\Rightarrow$ Der Webserver hat \zB keinen Zugriff (auf ein Verzeichnis). Oder man greift auf ein Verzeichnis zu, ohne eine Datei anzugeben (und es gibt keine \pfad{index.html} und das Verzeichnislisting ist deaktiviert). \enquote{Wenn ich eine solche Meldung erhalte, erhält sie jeder!}
 | 
			
		||||
            \item \code{404} $\Rightarrow$ Not Found; Der Pfad wurde nicht gefunden
 | 
			
		||||
            \item \code{403} $\Rightarrow$ Forbidden $\Rightarrow$ Der Webserver hat \zB keinen Zugriff (auf ein Verzeichnis). Oder man greift auf ein Verzeichnis zu, ohne eine Datei anzugeben (und es gibt keine \pfad{index.html} und das Verzeichnislisting ist deaktiviert). \newline
 | 
			
		||||
            \enquote{Wenn ich eine solche Meldung erhalte, erhält sie jeder!}
 | 
			
		||||
            \item \code{404} $\Rightarrow$ Not Found: Der Pfad wurde nicht gefunden
 | 
			
		||||
        \end{itemize}
 | 
			
		||||
 | 
			
		||||
    \item \textbf{\code{5xx}}:  Server Error
 | 
			
		||||
| 
						 | 
				
			
			@ -67,18 +69,18 @@ Die Statuszeile wird gefolgt von einer oder mehreren \acs{HTTP}-Header-Zeilen im
 | 
			
		|||
                \medskip
 | 
			
		||||
                \begin{description}[noitemsep]
 | 
			
		||||
                    \item[\acf{tlmt}] \index{Media-Type!Top Level} $\Rightarrow$  grundsätzliche Medienform (text, image, video, audio, application, [  multipart])
 | 
			
		||||
                    \item[\acf{slmt}] \index{Media-Type!Sub Level} $\Rightarrow$ Angabe der konkreten Codierung (Anwendungscodierung), \zB \code{text/html  }, \code{text/plain}, \code{image/jpeg}, \code{video/mp4}, \ldots
 | 
			
		||||
                    \item[\acf{slmt}] \index{Media-Type!Sub Level} $\Rightarrow$ Angabe der konkreten Codierung (Anwendungscodierung), \zB \code{text/html}, \code{text/plain}, \code{image/jpeg}, \code{video/mp4}, \ldots
 | 
			
		||||
                \end{description}
 | 
			
		||||
                \medskip
 | 
			
		||||
 | 
			
		||||
          \item \textbf{Achtung}: Alle \acsp{MIME-Type} sind standardisierte Werte! Dies ist standardisiert von \enquote{IANA} (Teil der \enquote{IETF} ) \newline
 | 
			
		||||
          \item \textbf{Achtung}: Alle \acsp{MIME-Type} sind standardisierte Werte! Diese werden standardisiert von der \enquote{IANA} (Teil der \enquote{IETF} ) \newline
 | 
			
		||||
                \textbf{Ausnahme}: \acs{slmt} beginnt mit \enquote{\code{x-}}, \zB \code{application/x-meinespezielleirgendwas}
 | 
			
		||||
 | 
			
		||||
          \item Wird immer mitgegeben, außer man hat \textit{keinen} Content
 | 
			
		||||
                (\zB bei \code{204} [siehe S.~\pageref{sec:http}])!
 | 
			
		||||
        \end{itemize}
 | 
			
		||||
 | 
			
		||||
    \item[\code{Content-Length:<Größe in Bytes>}] Größe der Antwort in Bytes
 | 
			
		||||
    \item[\code{Content-Length: <Größe in Bytes>}] Größe der Antwort in Bytes
 | 
			
		||||
        \begin{itemize}[noitemsep]
 | 
			
		||||
            \item Wichtig für Anzeige von Download-Fortschrittsbalken
 | 
			
		||||
            \item Wichtig für Caches in Browsern und Proxies
 | 
			
		||||
| 
						 | 
				
			
			@ -96,13 +98,14 @@ Eine Leerzeile beendet die \acs{HTTP}-Header-Zeilen, danach folgt das Dokument.
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
\subsection{Weitere Request-Typen}\index{HTTP!Requests}
 | 
			
		||||
Mit HTTP 1.0 wurden weitere Request Typen eingeführt.
 | 
			
		||||
Mit \acs{HTTP} 1.0 wurden weitere Request Typen eingeführt.
 | 
			
		||||
 | 
			
		||||
\subsubsection{HEAD-Request}
 | 
			
		||||
\code{HEAD /pfad/zur/ressource HTTP/1.0} $\Rightarrow$ liefert nur die Statuszeile und \acs{HTTP}-Headerzeile.
 | 
			
		||||
\code{HEAD /pfad/zur/ressource HTTP/1.0} $\Rightarrow$ liefert nur die Statuszeile und \acs{HTTP}-Headerzeilen.
 | 
			
		||||
 | 
			
		||||
\subsubsection{POST-Request}
 | 
			
		||||
\code{POST /pfad/zur/ressource HTTP/1.0} $\Rightarrow$ gefolgt von Parametern (signalisiert wie bei einer Response über \acs{HTTP}-Headerzeilen).
 | 
			
		||||
\code{POST /pfad/zur/ressource HTTP/1.0} \newline
 | 
			
		||||
$\Rightarrow$ gefolgt von Parametern (signalisiert wie bei einer Response über \acs{HTTP}-Headerzeilen).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
\subsection{Was funktioniert nicht?}
 | 
			
		||||
| 
						 | 
				
			
			@ -110,10 +113,12 @@ Mit HTTP 1.0 wurden weitere Request Typen eingeführt.
 | 
			
		|||
\acs{HTTP} 1.0 funktioniert gut, aber was funktioniert nicht bzw. was geht besser?
 | 
			
		||||
 | 
			
		||||
Ist es möglich, mehrere \acs{FQDN} auf eine IP-Adrese zu leiten? \newline
 | 
			
		||||
\hspace*{4mm} $\Rightarrow$ FQDN1 und FQDN2 zeigen beide auf \code{1.2.3.4}; per \acs{DNS} möglich und erlaubt! \newline
 | 
			
		||||
\hspace*{4mm} $\Rightarrow$ FQDN1 und FQDN2 zeigen beide auf \code{1.2.3.4}; per \acs{DNS} möglich und erlaubt!
 | 
			
		||||
 | 
			
		||||
\code{GET /pfad/zur/ressource HTTP/1.0} $\Rightarrow$ Problem: Der \acs{FQDN} steht nicht im Request bei \acs{HTTP} 1.0 und wird nicht einmal für den \acs{TCP}-Verbindungsaufbau verwendet $\Rightarrow$ Der Webserver weiss nicht, welche Präsenz angefragt ist!
 | 
			
		||||
\code{GET /pfad/zur/ressource HTTP/1.0} $\Rightarrow$ Problem: Der \acs{FQDN} steht nicht im Request bei \acs{HTTP} 1.0 und wird nicht einmal für den \acs{TCP}-Verbindungsaufbau verwendet \newline
 | 
			
		||||
$\Rightarrow$ \textit{Der Webserver weiß nicht, welche Präsenz angefragt ist!}
 | 
			
		||||
 | 
			
		||||
\medskip
 | 
			
		||||
\begin{Achtung}
 | 
			
		||||
    \acs{HTTP} 1.0 kann nicht erkennen, von welchem \acs{FQDN} der Request kommt! Siehe \autoref{sec:multi_präsenzen} für Möglichkeiten, dennoch verschiedene Webpräsenzen zu unterscheiden.
 | 
			
		||||
\end{Achtung}
 | 
			
		||||
| 
						 | 
				
			
			@ -123,8 +128,8 @@ Pflicht-Header im Request:
 | 
			
		|||
 | 
			
		||||
\qquad \code{Host: $\underbrace{\text{www.dhbw-karlsruhe.de}}_{\text{angefragter FQDN}}$}
 | 
			
		||||
 | 
			
		||||
Jetzt gibt es persistene Verbindungen, \dash eine \acs{TCP}-Verbindung wird nacheinander für meherere Request/Response-Paare zwischen Client und Server genutzt. \newline
 | 
			
		||||
$\Rightarrow$ Es muss nicht jeweils eine neue Verbindung aufgebaut werden. Bereits vorher bei \acs{HTTP} 1.0 gab es ähnliches, nämlich den \enquote{Connection: Keepalive}-Header. Dieser ist nicht standard-konform und nur teilweise implementiert!
 | 
			
		||||
Jetzt gibt es persistente Verbindungen, \dash eine \acs{TCP}-Verbindung wird nacheinander für meherere Request/Response-Paare zwischen Client und Server genutzt. \newline
 | 
			
		||||
Es muss somit nicht jeweils eine neue Verbindung aufgebaut werden. Bereits vorher bei \acs{HTTP} 1.0 gab es ähnliches, nämlich den \enquote{Connection: Keepalive}-Header. Dieser ist jedoch nicht standard-konform und nur teilweise implementiert!
 | 
			
		||||
 | 
			
		||||
\begin{figure}[h]
 | 
			
		||||
    \begin{center}
 | 
			
		||||
| 
						 | 
				
			
			@ -171,7 +176,7 @@ Siehe Wikipedia: \url{https://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol#
 | 
			
		|||
    \item per \acf{FQDN}\index{FQDN} \enquote{Rechner} oder \enquote{Domain}-Name, welche per DNS auf eine IP-Adresse umgesetzt werden (A-Record oder Alias-Eintrag), \newline
 | 
			
		||||
        \zB \code{http://dhbw-karlsruhe.de}, \code{http://www.uni-karlsruhe.de} $\Rightarrow$ Dies gilt als professionell
 | 
			
		||||
        \begin{enumerate}[noitemsep]
 | 
			
		||||
            \item mehrere IP-Adressen (je eine eigene IP Adresse pro \acs{FQDN})
 | 
			
		||||
            \item mehrere IP-Adressen (je eine eigene IP-Adresse pro \acs{FQDN})
 | 
			
		||||
                \begin{enumerate}[noitemsep]
 | 
			
		||||
                    \item mehrere Netzwerkkarten
 | 
			
		||||
                        \begin{itemize}[noitemsep]
 | 
			
		||||
| 
						 | 
				
			
			@ -187,5 +192,8 @@ Siehe Wikipedia: \url{https://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol#
 | 
			
		|||
 | 
			
		||||
                        \end{itemize}
 | 
			
		||||
                \end{enumerate}
 | 
			
		||||
            \item mehere \acs{FQDN} für eine IP-Adresse: 
 | 
			
		||||
            
 | 
			
		||||
            	Unterscheidung durch \code{Host}-Header im Request (ab \acs{HTTP} Version 1.1).
 | 
			
		||||
        \end{enumerate}
 | 
			
		||||
\end{enumerate}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,7 +18,7 @@ Bei einer IPv4\index{IPv4} \code{a.b.c.d} mit $a,b,c,d \in {0,...,255}$ (oder an
 | 
			
		|||
        \end{tabular}
 | 
			
		||||
 | 
			
		||||
    \item Außerdem sind in jedem Teilnetz die erste und die letzte Adresse als Netzwerkadresse bzw. Broadcast-Adresse reserviert. \newline
 | 
			
		||||
          $\Rightarrow$ ingesamt stehen deshalb weniger als 4 Mrd. Adressen zur Verfügung.
 | 
			
		||||
          $\Rightarrow$ insgesamt stehen deshalb weniger als 4 Mrd. Adressen zur Verfügung.
 | 
			
		||||
 | 
			
		||||
    \item Außerdem: IP-Adressen sind äußerst ungerecht auf der Welt verteilt:
 | 
			
		||||
          \begin{itemize}[noitemsep]
 | 
			
		||||
| 
						 | 
				
			
			@ -30,6 +30,7 @@ Bei einer IPv4\index{IPv4} \code{a.b.c.d} mit $a,b,c,d \in {0,...,255}$ (oder an
 | 
			
		|||
    \item Außerdem: immer mehr Geräte der Haushalts- und Unterhaltungselektronik sind \enquote{internetfähig} (haben einen Webserver).
 | 
			
		||||
\end{itemize}
 | 
			
		||||
 | 
			
		||||
\bigskip
 | 
			
		||||
\begin{Tipp}
 | 
			
		||||
    \textbf{Grobe Berechnung von 2er Potenzen}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -97,7 +97,7 @@
 | 
			
		|||
        \begin{itemize}[noitemsep]
 | 
			
		||||
            \item Tabellen
 | 
			
		||||
            \item (Java-)Applets
 | 
			
		||||
            \item \uwave{Textfluss} um Grafiken (vorher waren Grafiken \enquote{inline} und der Zeilenabstand wurde vergrößert, sodass die Grafik in   die Zeile passte. Alternativ konnte man noch Zeilenumbrüche verwenden)
 | 
			
		||||
            \item \uwave{Textfluss} um Grafiken (vorher waren Grafiken \enquote{inline} und der Zeilenabstand wurde vergrößert, sodass die Grafik in   die Zeile passte. Alternativ konnte man noch \mbox{Zeilenumbrüche} verwenden) % mbox gegen die komische Silbentrennung von LaTeX: Zeile-numbrüche
 | 
			
		||||
        \end{itemize}
 | 
			
		||||
 | 
			
		||||
    \item[1997] HTML 4.0
 | 
			
		||||
| 
						 | 
				
			
			@ -142,7 +142,7 @@
 | 
			
		|||
            \item viele syntaktische/grammatikalische Vereinfachungen sind nun erlaubt:
 | 
			
		||||
                \begin{itemize}[noitemsep]
 | 
			
		||||
                    \item kein End-Tag (bei leeren Tags, falls der nachfolgende Tag den vorherigen Tag implizit schließt)
 | 
			
		||||
                    \item kein Start-Tag, falls der Tag bedeutet, dass vorher ein anderes Tag geöffnet werden muss (\zB \html{<title>}, bevor der \html{<  head>} geöffnet wurde)
 | 
			
		||||
                    \item kein Start-Tag, falls der Tag bedeutet, dass vorher ein anderes Tag geöffnet werden muss (\zB \html{<title>}, bevor der \html{<head>} geöffnet wurde)
 | 
			
		||||
                    \item Anführungszeichen bei Attributwerten können weggelassen werden (sofern keine Trennzeichen enthalten sind, \zB \html{<p id=test>})
 | 
			
		||||
                    \item Attributwerte (bei Attributen mit Wahrheits- oder booleschen Werten) können weggelassen werden (\zB \html{<input type="text" disabled[="disabled"]>})
 | 
			
		||||
                \end{itemize}
 | 
			
		||||
| 
						 | 
				
			
			@ -154,7 +154,7 @@
 | 
			
		|||
      \end{itemize}
 | 
			
		||||
\end{enumerate}
 | 
			
		||||
 | 
			
		||||
\begin{Hinweis}
 | 
			
		||||
\begin{Hinweis}[frametitle={Hinweis zur Klausur}]
 | 
			
		||||
    In der Klausur sollten keine Vereinfachungen verwendet werden! Zu hoher Wahrscheinlichkeit wird sowieso \acs{XHTML} gefordert!
 | 
			
		||||
\end{Hinweis}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -183,7 +183,7 @@
 | 
			
		|||
 | 
			
		||||
\begin{description}
 | 
			
		||||
    \item[\code{PUBLIC}] Es handelt sich um einen öffentlichen Standard. \newline
 | 
			
		||||
        Alternativ gibt es noch \code{SYSTEM} oder \code{PRIVATE} für selbst definierte Grammatiken mit (oder ohne) Angabe der \acs{DTD}
 | 
			
		||||
        Alternativ gibt es noch \code{SYSTEM} oder \code{PRIVATE} für selbst definierte Grammatiken mit (oder ohne) Angabe der \acs{DTD}.
 | 
			
		||||
 | 
			
		||||
    \item[\enquote{Public-ID}] Textuelle, exakt festgelegte \enquote{Beschreibung des Standards}, \zB \code{-//W3C//DTD XHTML 1.1//EN} bei XHTML 1.1
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -265,8 +265,8 @@
 | 
			
		|||
 | 
			
		||||
\begin{itemize}[noitemsep]
 | 
			
		||||
    \item die Datenmenge muss dennoch komplett geladen werden
 | 
			
		||||
    \item erhöhter Speicherplatzverbrauch im Web-Browser (Arbeitsspeicher! Es ist nicht der Cache gemeint)
 | 
			
		||||
    \item die Qualität der Skalierung im Browser ist (meist) schlechter als bei Bildverarbeitungsprogrammen
 | 
			
		||||
    \item erhöhter Speicherplatzverbrauch im Web-Browser (Arbeitsspeicher! Es ist nicht der Cache gemeint!)
 | 
			
		||||
    \item die Qualität der Skalierung im Browser ist (meist) schlechter als bei Bildbearbeitungsprogrammen
 | 
			
		||||
\end{itemize}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -309,13 +309,6 @@ Die Anzahl der Spalten (und Zeilen) wird nicht vorab definiert. Eine unterschied
 | 
			
		|||
    \label{tbl:html_tabelle_anzahl_felder}
 | 
			
		||||
\end{table}
 | 
			
		||||
 | 
			
		||||
\begin{figure}[h]
 | 
			
		||||
    \centering
 | 
			
		||||
    \includegraphics[scale=0.92]{Bilder/HTML_rowspan_colspan.png}
 | 
			
		||||
    \caption{HTML-Tabelle mit zusammengefügten Feldern}
 | 
			
		||||
    \label{fig:html_table_colspan_row}
 | 
			
		||||
\end{figure}
 | 
			
		||||
 | 
			
		||||
Statt \html{<td>} kann auch überall \html{<th>} verwendet werden, um eine Art Metadaten (Beschreibung der Tabelleninhalte) anzeigen zu lassen.
 | 
			
		||||
 | 
			
		||||
Seit \acs{HTML} 4 kann \html{<table>} zusätzlich gegliedert werden in:
 | 
			
		||||
| 
						 | 
				
			
			@ -335,6 +328,14 @@ Optionale Attribute in \html{<td>} und \html{<th>}:
 | 
			
		|||
 | 
			
		||||
Die überdeckten \html{<td>}/\html{<th>} müssen im Quelltext gestrichen/ausgelassen werden. Ein Beispiel für die Ausgabe zeigt \autoref{fig:html_table_colspan_row} mit dem dazu gehörigen \acs{HTML}-Quelltext in \autoref{lst:table_col_row_span} auf Seite~\pageref{lst:table_col_row_span}.
 | 
			
		||||
 | 
			
		||||
\bigskip
 | 
			
		||||
\begin{figure}[h!]
 | 
			
		||||
	\centering
 | 
			
		||||
	\includegraphics[scale=0.9]{Bilder/HTML_rowspan_colspan.png}
 | 
			
		||||
	\caption{HTML-Tabelle mit zusammengefügten Feldern}
 | 
			
		||||
	\label{fig:html_table_colspan_row}
 | 
			
		||||
\end{figure}
 | 
			
		||||
 | 
			
		||||
\newpage
 | 
			
		||||
\begin{lstlisting}[language=HTML5,caption=Tabelle -- \code{colspan} und \code{rowspan},label=lst:table_col_row_span]
 | 
			
		||||
    <table border="1">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,7 +7,7 @@
 | 
			
		|||
        Beispiel für URL (und damit auch für URI): \pfad{http://www.dhbw-karlsruhe.de/}
 | 
			
		||||
 | 
			
		||||
    \item[\acs{URI}] Gibt Informationen, wie eine Ressource erreicht werden kann. \newline
 | 
			
		||||
        Beispiel für URI (aber nicht für eine URL): mailto:xyz@dhbw-karlsruhe.de
 | 
			
		||||
        Beispiel für URI (aber nicht für eine URL): \pfad{mailto:xyz@dhbw-karlsruhe.de}
 | 
			
		||||
\end{description}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -57,7 +57,7 @@ Format einer \acs{URL}:\newline
 | 
			
		|||
\end{Achtung}
 | 
			
		||||
 | 
			
		||||
\subsection{Relative URLs}\label{sec:relative_url}
 | 
			
		||||
Es können auch relative \acsp{URL} angegeben werden, die jedoch mithilfe der vollständigen \acs{URL} des enthaltenden Dokuments ebenfalls zu einer vollständigen (absoluten) URL gemacht werden! Es wird zwischen folgenden relativen URLs unterschieden:
 | 
			
		||||
Es können auch relative \acsp{URL} angegeben werden, die jedoch mithilfe der vollständigen \acs{URL} des enthaltenden Dokuments ebenfalls zu einer vollständigen (absoluten) \acs{URL} gemacht werden! Es wird zwischen folgenden relativen URLs unterschieden:
 | 
			
		||||
 | 
			
		||||
\begin{description}
 | 
			
		||||
    \item[Protokoll-relative URL] beginnt mit \pfad{//...}, \pfad{host/...} (\zB HTTPS)\index{URL!Protokoll-relativ}
 | 
			
		||||
| 
						 | 
				
			
			@ -81,7 +81,8 @@ Anwendung von vollständigen (Host-absoluten) URLs
 | 
			
		|||
  \item Verweis auf den eigenen Server mit anderem Protokoll (HTTP $\Leftrightarrow$ HTTPS $\Leftrightarrow$ FTP)
 | 
			
		||||
\end{itemize}
 | 
			
		||||
 | 
			
		||||
Spezielle Verzeichnisnamen, welche speziell bei relativen URLs wichtig sind:
 | 
			
		||||
\newpage
 | 
			
		||||
Spezielle Verzeichnisnamen, welche speziell bei relativen \acsp{URL} wichtig sind:
 | 
			
		||||
 | 
			
		||||
\begin{description}[noitemsep]
 | 
			
		||||
  \item[\pfad{..}] das übergeordnete Verzeichnis (im Falle des Wurzelverzeichnisses wiederum das Wurzelverzeichnis).
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -114,7 +114,7 @@ $\Rightarrow$ Gesamtbreite: 60mm, da padding, border-width und margin doppelt ge
 | 
			
		|||
Falls es keine explizite Angabe durch den Autor der Seite gibt, so wird folgendes verwendet:
 | 
			
		||||
 | 
			
		||||
\begin{itemize}[noitemsep]
 | 
			
		||||
    \item default-Vorgabe (\code{user-agent})
 | 
			
		||||
    \item Default-Vorgabe (\code{user-agent})
 | 
			
		||||
    \item dynamische Anpassung (hier an den Inhalt)
 | 
			
		||||
\end{itemize}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -159,7 +159,7 @@ Die tatsächliche \enquote{Position} wird angegeben mittels \code{top}, \code{bo
 | 
			
		|||
 | 
			
		||||
\code{width}, \code{right}, \code{margin}, \code{top}, \ldots erwarten Längenangaben als Werte. Diese können sein:
 | 
			
		||||
 | 
			
		||||
\begin{itemize}[noitemsep]
 | 
			
		||||
\begin{itemize}
 | 
			
		||||
    \item absolute Werte, \zB $50mm$, $3in$, $2pt$ (\enquote{Punkt der Schriftsetzer}) $\Rightarrow$ werden selten verwendet
 | 
			
		||||
    \item relative Werte, \zB \medskip
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -338,7 +338,7 @@ Deswegen ist folgendes besser: \css{ol \{ list-style-type: decimal; \}}
 | 
			
		|||
\subsubsection{Kontextselektoren}\index{Selektoren!Kontext}
 | 
			
		||||
 | 
			
		||||
\begin{tabular}{ll}
 | 
			
		||||
    \code{ol li \{\ldots \}} & $\Rightarrow$ gilt für alle \html{<li>}-Nachfolger eines \html{<ol>} \\
 | 
			
		||||
    \code{ol li \{\ldots \}} & $\Rightarrow$ gilt für \textit{alle} \html{<li>}-Kinder eines \html{<ol>} \\
 | 
			
		||||
    \code{ol > li \{\ldots \}} & $\Rightarrow$ gilt für alle \textit{direkten} \html{<li>}-Kinder eines \html{<ol>} (keine Kindeskinder) \\
 | 
			
		||||
    \code{h1 \circa{} p \{\ldots \}} & $\Rightarrow$ gilt für \html{<p>}, wenn es einen vorangegangenen Geschwisterknoten \html{<h1>} gibt. \\
 | 
			
		||||
    \code{h1 + p \{ \ldots \}} & $\Rightarrow$ gilt für alle \html{<p>}, die einen direkten Vorgänger \html{<h1>} haben. \\
 | 
			
		||||
| 
						 | 
				
			
			@ -358,7 +358,7 @@ Kontextselektoren sind spezifischer als Selektoren ohne Kontext!
 | 
			
		|||
    \code{a[href\^{}="http"] \{\ldots \}} & $\Rightarrow$ & gilt für alle \html{<a>}-Tags, deren \code{href}-Attribut mit \enquote{http} beginnt  \\
 | 
			
		||||
    \code{a[href\^{}="http://"], a[href\^{}="https://"] \{\ldots \}} & $\Rightarrow$ & gilt für alle \html{<a>}-Tags, die auf externe Seiten verlinken. \\
 | 
			
		||||
    \code{a[href\$=".pdf"] \{\ldots \}} & $\Rightarrow$ & gilt für alle \html{<a>}-Tags, die auf eine PDF verweisen.\\
 | 
			
		||||
    \code{a[href*="google."] \{\ldots \}} & $\Rightarrow$ & gilt für alle \html{<a>}-Tags, die auf Google verweisen (bzw. die \code{google.} enthalten.\\
 | 
			
		||||
    \code{a[href*="google."] \{\ldots \}} & $\Rightarrow$ & gilt für alle \html{<a>}-Tags, die auf Google verweisen (bzw. die \code{google.} enthalten).\\
 | 
			
		||||
 | 
			
		||||
\end{tabular}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue