%Teilweise Erzeugt mit dem LaTeX-Generator: http://latex.sehnot.de

%Schriftgröße, Layout, Papierformat, Art des Dokumentes
\documentclass[10pt,oneside,a4paper]{scrartcl}

%Einstellungen der Seitenränder
\usepackage[left=2cm,right=2cm,top=1.5cm,bottom=1.5cm,includeheadfoot]{geometry}

%neue Rechtschreibung
\usepackage[ngerman]{babel}

%Umlaute ermöglichen
\usepackage[utf8]{inputenc}

%Gesamtseitenzahl
\usepackage{lastpage}

% Kopf- und Fußzeile
\usepackage[automark]{scrpage2}

%Quellcode-Listings
\usepackage{listings}

%Hyperlinks
\usepackage{hyperref}

%Kopfzeile
\ihead{Netzwerktechnik}
\chead{}
\ohead{http://kohnlehome.de/netz/http.pdf}
\setheadsepline{0.5pt}

%Fußzeile
\setfootsepline{0.5pt}
\ifoot{Franz Kohnle}
\cfoot{Seite \thepage\ von  \pageref{LastPage}}
\ofoot{\today}

\pagestyle{scrheadings}

\begin{document}

% Überschrift 
\begin{center}
\LARGE % Schriftgröße
\bfseries % Fettdruck
\sffamily % Serifenlose Schrift
HTTP (Hypertext Transfer Protocol)
\end{center}


\section{Kommunikation}
\begin{verbatim}
              Client                              Server
                 | -------- HTTP-REQUEST ---------> | 
                 | <------- HTTP-RESPONSE --------- |
\end{verbatim}

\section{HTTP Messages}
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{| l || l |}
\hline
HTTP REQUEST & HTTP RESPONSE\\

\hline \hline
\rule{0pt}{8ex}    
\begin{minipage}{7cm}
\paragraph{Start line}
\begin{verbatim}
POST     /datei.php     HTTP/1.1
 |            |            |
Methode      URI     HTTP-Version

\end{verbatim}
\end{minipage}

&

\begin{minipage}{7cm}
\paragraph{Status line}
\begin{verbatim}
HTTP/1.1     200 OK
 |              |
Version    Statuscode

\end{verbatim}
\end{minipage} \\

\hline
\rule{0pt}{10ex}
\begin{minipage}{6cm}
\paragraph{Headers}
\begin{verbatim}
Host: kohnlehome.de
User-Agent: Mozilla...
...


\end{verbatim}
\end{minipage}

&

\begin{minipage}{6cm}
\paragraph{Headers}
\begin{verbatim}
Date: ...
Server: Apache
Content-Type: text/html
...

\end{verbatim}
\end{minipage} \\ \hline


\rule{0pt}{8ex}
\begin{minipage}{6cm}
\paragraph{Body}
\begin{verbatim}
var1=wert1&var2=wert2


\end{verbatim}
\end{minipage}

&

\begin{minipage}{6cm}
\paragraph{Body}
\begin{verbatim}
<html>
...
</html>
\end{verbatim}
\end{minipage} \\ \hline
\end{tabular}


\section{Request-Methoden}
\begin{itemize}
\item GET: Daten abrufen
\item POST: Ressource erstellen (ohne ID)
\item PUT: Ressource erstellen (mit ID) oder überschreiben (idempotent)
\item DELETE: Ressource löschen
\end{itemize}


\section{Response-Statuscodes}
\begin{itemize}
\item 1xx: Information
	\begin{itemize}
	\item 102 Processing (Antwort folgt)
	\end{itemize}
\item 2xx: Erfolgreiche Operation
	\begin{itemize}
	\item 200 OK
	\item 201 Created
	\end{itemize}
\item 3xx: Umleitung
	\begin{itemize}
	\item 301 Moved Permanently
	\item 304 Not Modified
	\end{itemize}
\item 4xx: Client Fehler
	\begin{itemize}
	\item 404 Not Found
	\end{itemize}
\item 5xx: Server Fehler
	\begin{itemize}
	\item 500 Internal Server Error
	\end{itemize}
\end{itemize}


\end{document}
