%Schriftgröße, Layout, Papierformat, Art des Dokumentes
\documentclass[10pt,oneside,a4paper,headsepline,footsepline]{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]{scrlayer-scrpage}

%Quellcode-Listings
\usepackage{listings}

%Hyperlinks
\usepackage{hyperref}

% Backticks
\usepackage{upquote}

%Sequenzdiagramme
\usepackage{pgf-umlsd}

%Kopfzeile
\ihead{Netzwerktechnik}
\chead{}
\ohead{http://kohnlehome.de/netz/http-cookies.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-Cookies
\end{center}


\section*{HTTP}
\begin{sequencediagram}
    \newinst[]{speicher}{: Speicher}
    \newinst[4]{client}{: Browser}
    \newinst[6]{server}{: Webserver}
    \def\unitfactor{2}
    \prelevel % eine Einheit nach oben
    \node[draw,circle] at (11.3,-0.7) {1}; % Kreis mit Zahl
    \begin{call}{client}{GET /seite1.php HTTP/1.1}{server}{\shortstack{HTTP/1.1 200 OK\\Set-Cookie: variable1=wert1\\ Set-Cookie: variable2=wert2}}
    \end{call}
    \node[draw,circle] at (11.3,-4.3) {2}; % Kreis mit Zahl
    \prelevel
    \mess{client}{variable1=wert1, variable2=wert2}{speicher}
    \node[draw,circle] at (4.8,-4.3) {3}; % Kreis mit Zahl
    \postlevel
    \mess{speicher}{variable1=wert1, variable2=wert2}{client}
    \node[draw,circle] at (11.3,-6.2) {4}; % Kreis mit Zahl

    \prelevel
    \begin{call}{client}{\shortstack{GET /seite2.php HTTP/1.1\\Cookie: variable1=wert1; variable2=wert2}}{server}{HTTP/1.1 200 OK}
    \end{call}
    \prelevel
\end{sequencediagram}

\section*{Verlauf}
\begin{enumerate}
    \item Der Browser schickt einen HTTP-Request an den Webserver
    \item Der Webserver schickt im HTTP-Response-Header seine Cookie-Daten
    \item Der Browser speichert die Cookies
    \item Beim nächsten HTTP-Request an den Server schickt der Browser die Cookie-Daten im HTTP-Header mit
\end{enumerate}

\end{document}
