[Inhalt] Typos; Korrekturen

Typos korrigiert und Inhalt teilweise ergänzt/korrigiert.
This commit is contained in:
Andre Meyering 2017-07-30 17:36:55 +02:00
parent fd9601ec83
commit b4ab50ac3f
6 changed files with 95 additions and 88 deletions

View file

@ -43,82 +43,43 @@ Der \enquote{Hyperlink} ist ein Verweis mit automatischer Verweisauflösung. Er
\item \enquote{Erfinder} des Hyperlinks: Vannevar Bush, 1945 \item \enquote{Erfinder} des Hyperlinks: Vannevar Bush, 1945
\item siehe \enquote{As we may think}, Atlantic Monthly, 1945 \item siehe \enquote{As we may think}, Atlantic Monthly, 1945
\item siehe Maschine \enquote{memex} (Memory extension) \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} \end{itemize}
\subsection{Zwei Eigenschaften des \acs{WWW} (\enquote{Erfolgsfaktoren})\label{sec:lokations_medienunabhaengigkeit}\index{WWW}} \subsection{Zwei Eigenschaften des \acs{WWW} (\enquote{Erfolgsfaktoren})\label{sec:lokations_medienunabhaengigkeit}\index{WWW}}
\begin{enumerate}[noitemsep] \begin{enumerate}
\item \textbf{Lokationsunabhängigkeit} \item \textbf{Lokationsunabhängigkeit}
$\Rightarrow$ unabhängig von der Lokation der Information und der Suchenden; Unabhängig von der Lokation der Information und des Suchenden, kann die
die Information kann immer \enquote{auf die gleiche Weise} beschafft werden. 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} \item \textbf{Medienunabhängigkeit} \hfill \newline
$\Rightarrow$ Die Information kann grundsätzlich in verschiedenen Medienformen Die Information kann grundsätzlich in verschiedenen Medienformen
(Text, Bild, Video, Audio, \ldots ) vorliegen. (Text, Bild, Video, Audio, \ldots ) vorliegen.
Ursprünglich nicht geplant und nicht im Web enthalten. Belege: Ursprünglich nicht geplant und nicht im Web enthalten. Belege:
\begin{itemize}[noitemsep] \begin{itemize}
\item HTML: Hyper \textbf{Text} Markup Language \item HTML: Hyper \textbf{Text} Markup Language
\item HTTP: Hyper \textbf{Text} Transfer Protocol \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{itemize}
\end{enumerate} \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 \newpage
\section{ISO-OSI-7-Schichten-Architektur} \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. \textbf{Hinweis}: Schicht 2 kann unterteilt werden.
\begin{itemize}[noitemsep] \begin{itemize}[noitemsep]
\item Ab der Transportschicht werden nur noch Ende zu Ende Verbindungen betrachtet. \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} \end{itemize}
@ -132,3 +93,38 @@ Die 7 Schichten des ISO-OSI-7-Schichten-Architektur\index{OSI-7-Schichten-Archit
\end{tabular} \end{tabular}
\acs{HTTP} als Anwendungsprotokoll des 4-Schichten-Internet-Modells benötigt als unterliegendes Protokoll der Transportschicht \acs{TCP} (\acs{UDP} geht nicht!). \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}

View file

@ -1,17 +1,18 @@
\chapter{\acf{HTTP}}\index{HTTP}\label{sec:http} \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. Ein Protokoll ist verbindliche Vereinbarung (Regeln), wie zwei (oder mehr) Teilnehmer miteinander kommunizieren.
\section{HTTP 0.9 (1991) - Erste Version}\label{http09} \section{HTTP 0.9 (1991) - Erste Version}\label{http09}
Request: \code{GET /pdf/zur/ressource} \newline 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: Nur Plain-Text und \acs{HTML} (erkennbar am Anfang \html{<html>}) sind erlaubt und möglich. \newline
Problem: Fehler sind nicht sicher erkennbar. Problem: Fehler sind nicht sicher erkennbar.
\section{HTTP 1.0 (1992)}\label{sec:http10} \section{HTTP 1.0 (1992)}\label{sec:http10}
Request: \code{GET /pdf/zur/ressource HTTP/1.0} \newline 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} \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] \begin{itemize}[noitemsep]
\item \textbf{\code{1xx}}: Informational Codes \newline \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 \item \textbf{\code{2xx}}: Successful Client Requests
\begin{itemize}[noitemsep] \begin{itemize}[noitemsep]
@ -44,8 +45,9 @@ Response: beginnt mit einer Statuszeile: \code{HTTP/1.0 <statuscode> <textuelle
\begin{itemize}[noitemsep] \begin{itemize}[noitemsep]
\item \code{400} $\Rightarrow$ Bad Request $\Rightarrow$ Der Request war nicht korrekt. \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{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{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
\item \code{404} $\Rightarrow$ Not Found; Der Pfad wurde nicht gefunden \enquote{Wenn ich eine solche Meldung erhalte, erhält sie jeder!}
\item \code{404} $\Rightarrow$ Not Found: Der Pfad wurde nicht gefunden
\end{itemize} \end{itemize}
\item \textbf{\code{5xx}}: Server Error \item \textbf{\code{5xx}}: Server Error
@ -67,18 +69,18 @@ Die Statuszeile wird gefolgt von einer oder mehreren \acs{HTTP}-Header-Zeilen im
\medskip \medskip
\begin{description}[noitemsep] \begin{description}[noitemsep]
\item[\acf{tlmt}] \index{Media-Type!Top Level} $\Rightarrow$ grundsätzliche Medienform (text, image, video, audio, application, [ multipart]) \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} \end{description}
\medskip \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} \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 \item Wird immer mitgegeben, außer man hat \textit{keinen} Content
(\zB bei \code{204} [siehe S.~\pageref{sec:http}])! (\zB bei \code{204} [siehe S.~\pageref{sec:http}])!
\end{itemize} \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] \begin{itemize}[noitemsep]
\item Wichtig für Anzeige von Download-Fortschrittsbalken \item Wichtig für Anzeige von Download-Fortschrittsbalken
\item Wichtig für Caches in Browsern und Proxies \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} \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} \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} \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?} \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? \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 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} \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. \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} \end{Achtung}
@ -123,8 +128,8 @@ Pflicht-Header im Request:
\qquad \code{Host: $\underbrace{\text{www.dhbw-karlsruhe.de}}_{\text{angefragter FQDN}}$} \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 Jetzt gibt es persistente 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! 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{figure}[h]
\begin{center} \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 \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 \zB \code{http://dhbw-karlsruhe.de}, \code{http://www.uni-karlsruhe.de} $\Rightarrow$ Dies gilt als professionell
\begin{enumerate}[noitemsep] \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] \begin{enumerate}[noitemsep]
\item mehrere Netzwerkkarten \item mehrere Netzwerkkarten
\begin{itemize}[noitemsep] \begin{itemize}[noitemsep]
@ -187,5 +192,8 @@ Siehe Wikipedia: \url{https://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol#
\end{itemize} \end{itemize}
\end{enumerate} \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}
\end{enumerate} \end{enumerate}

View file

@ -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} \end{tabular}
\item Außerdem sind in jedem Teilnetz die erste und die letzte Adresse als Netzwerkadresse bzw. Broadcast-Adresse reserviert. \newline \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: \item Außerdem: IP-Adressen sind äußerst ungerecht auf der Welt verteilt:
\begin{itemize}[noitemsep] \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). \item Außerdem: immer mehr Geräte der Haushalts- und Unterhaltungselektronik sind \enquote{internetfähig} (haben einen Webserver).
\end{itemize} \end{itemize}
\bigskip
\begin{Tipp} \begin{Tipp}
\textbf{Grobe Berechnung von 2er Potenzen} \textbf{Grobe Berechnung von 2er Potenzen}

View file

@ -97,7 +97,7 @@
\begin{itemize}[noitemsep] \begin{itemize}[noitemsep]
\item Tabellen \item Tabellen
\item (Java-)Applets \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} \end{itemize}
\item[1997] HTML 4.0 \item[1997] HTML 4.0
@ -142,7 +142,7 @@
\item viele syntaktische/grammatikalische Vereinfachungen sind nun erlaubt: \item viele syntaktische/grammatikalische Vereinfachungen sind nun erlaubt:
\begin{itemize}[noitemsep] \begin{itemize}[noitemsep]
\item kein End-Tag (bei leeren Tags, falls der nachfolgende Tag den vorherigen Tag implizit schließt) \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 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"]>}) \item Attributwerte (bei Attributen mit Wahrheits- oder booleschen Werten) können weggelassen werden (\zB \html{<input type="text" disabled[="disabled"]>})
\end{itemize} \end{itemize}
@ -154,7 +154,7 @@
\end{itemize} \end{itemize}
\end{enumerate} \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! In der Klausur sollten keine Vereinfachungen verwendet werden! Zu hoher Wahrscheinlichkeit wird sowieso \acs{XHTML} gefordert!
\end{Hinweis} \end{Hinweis}
@ -183,7 +183,7 @@
\begin{description} \begin{description}
\item[\code{PUBLIC}] Es handelt sich um einen öffentlichen Standard. \newline \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 \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] \begin{itemize}[noitemsep]
\item die Datenmenge muss dennoch komplett geladen werden \item die Datenmenge muss dennoch komplett geladen werden
\item erhöhter Speicherplatzverbrauch im Web-Browser (Arbeitsspeicher! Es ist nicht der Cache gemeint) \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 die Qualität der Skalierung im Browser ist (meist) schlechter als bei Bildbearbeitungsprogrammen
\end{itemize} \end{itemize}
@ -309,13 +309,6 @@ Die Anzahl der Spalten (und Zeilen) wird nicht vorab definiert. Eine unterschied
\label{tbl:html_tabelle_anzahl_felder} \label{tbl:html_tabelle_anzahl_felder}
\end{table} \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. 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: 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}. 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 \newpage
\begin{lstlisting}[language=HTML5,caption=Tabelle -- \code{colspan} und \code{rowspan},label=lst:table_col_row_span] \begin{lstlisting}[language=HTML5,caption=Tabelle -- \code{colspan} und \code{rowspan},label=lst:table_col_row_span]
<table border="1"> <table border="1">

View file

@ -7,7 +7,7 @@
Beispiel für URL (und damit auch für URI): \pfad{http://www.dhbw-karlsruhe.de/} 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 \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} \end{description}
@ -57,7 +57,7 @@ Format einer \acs{URL}:\newline
\end{Achtung} \end{Achtung}
\subsection{Relative URLs}\label{sec:relative_url} \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} \begin{description}
\item[Protokoll-relative URL] beginnt mit \pfad{//...}, \pfad{host/...} (\zB HTTPS)\index{URL!Protokoll-relativ} \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) \item Verweis auf den eigenen Server mit anderem Protokoll (HTTP $\Leftrightarrow$ HTTPS $\Leftrightarrow$ FTP)
\end{itemize} \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] \begin{description}[noitemsep]
\item[\pfad{..}] das übergeordnete Verzeichnis (im Falle des Wurzelverzeichnisses wiederum das Wurzelverzeichnis). \item[\pfad{..}] das übergeordnete Verzeichnis (im Falle des Wurzelverzeichnisses wiederum das Wurzelverzeichnis).

View file

@ -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: Falls es keine explizite Angabe durch den Autor der Seite gibt, so wird folgendes verwendet:
\begin{itemize}[noitemsep] \begin{itemize}[noitemsep]
\item default-Vorgabe (\code{user-agent}) \item Default-Vorgabe (\code{user-agent})
\item dynamische Anpassung (hier an den Inhalt) \item dynamische Anpassung (hier an den Inhalt)
\end{itemize} \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: \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 absolute Werte, \zB $50mm$, $3in$, $2pt$ (\enquote{Punkt der Schriftsetzer}) $\Rightarrow$ werden selten verwendet
\item relative Werte, \zB \medskip \item relative Werte, \zB \medskip
@ -338,7 +338,7 @@ Deswegen ist folgendes besser: \css{ol \{ list-style-type: decimal; \}}
\subsubsection{Kontextselektoren}\index{Selektoren!Kontext} \subsubsection{Kontextselektoren}\index{Selektoren!Kontext}
\begin{tabular}{ll} \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{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 \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. \\ \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"] \{\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\^{}="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\$=".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} \end{tabular}