\documentclass[a4paper, 11pt]{article}
\renewcommand{\familydefault}{\sfdefault}
\usepackage{a4wide}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{color}
\usepackage{graphicx}
\usepackage{setspace}
\usepackage{ulem}
\usepackage{listings}
\usepackage{float}
\usepackage[rflt]{floatflt}
\usepackage{tabularx}
\setlength{\parindent}{0pt}
\title{HTTP-Headers – Page Speed}
\usepackage[
pdftitle={HTTP-Headers – Page Speed}
pdfsubject={Performance Verbesserungen des CMS}
pdfauthor={Udo Schmal}
pdfkeywords={Analyse, HTTP-Headers, Page Speed, GZIP, deflate, Performance, CMS, ISAPI}
]{hyperref}
\definecolor{darkblue}{rgb}{0,0,.5}
\hypersetup{pdftex=true, colorlinks=true, breaklinks=true, linkcolor=darkblue, menucolor=darkblue, pagecolor=darkblue, urlcolor=darkblue}
\begin{document}HTTP-Headers – Page Speed
\singlespacing
{\LARGE \textbf{\label{sec:title}Page Speed – Geschwindigkeit/Performance Optimierung (Umsetzung)}}

\singlespacing
{\large \textbf{\label{sec:subtitle}Minimierung von unnötigen Traffic und Maximierung der Performance}}

\begin{enumerate}
\item In den HTTP-Headers (dieser Block wird übertragen bevor der Übertragungsinhalt folgt) werden Last-Modified (die Information wann ein Inhalt zuletzt geändert wurde) und Etag (ein Hash-Wert über den Seiteninhalt) auch bei dynamischen Inhalten mitgeführt, dieses hat zur Folge das der Seiteninhalt nur dann neu übermittelt wird falls er sich gegenüber den im Cache befindlichen Inhalt geändert hat.
\item Alle gängigen Browser oder Crawler (Robot, Suchmaschine) unterstützen ein Content-Encoding (Komprimierungsmethode) und so wird je nach Vorgabe ein deflate oder gzip (Komprimierung des Seiteninhalts) durchgeführt, so dass eine minimale Datenmenge übertragen werden muss (im Beispiel: unkomprimiert 51.148 Bytes / komprimiert 10.633 Bytes). Durch Vary: Accept-Encoding wird sichergestellt das ein Proxy eine sowohl eine komprimierte als auch eine unkomprimierte Version zur Verfügung stellen kann.
\end{enumerate}

\textbf{HTTP-Headers (nicht angezeigter Informationskopf einer Internet-Übertragung)}

\textbf{1. Abfrage einer Seite}
\begin{lstlisting}[breaklines]POST /HTTP-Headers-Page-Speed HTTP/1.1\newline
Host: www.gocher.me\newline
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0\newline
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\newline
Accept-Language: de-de,en-us;q=0.7,en;q=0.3\newline
Accept-Encoding: gzip, deflate\newline
Referer: http://www.gocher.me/SEO-Checkliste\newline
Cookie: SESSIONID=978799800@217.6.30.230\newline
Connection: keep-alive\newline
\newline
HTTP/1.1 200 OK\newline
Server: Microsoft-IIS/7.5\newline
X-Powered-By: ISAPI CMS v4.1.3, Udo Schmal\newline
Connection: keep-alive\newline
Cache-Control: max-age=604800, must-revalidate\newline
Date: Mon, 02 Sep 2013 08:28:04 GMT\newline
Last-Modified: Mon, 10 Jun 2013 22:20:14 GMT\newline
Content-Type: text/html; charset=utf-8\newline
Etag: \&quot;353dd799aee54b3c4cca0f5b4939e7ad\&quot;\newline
Content-Encoding: gzip\newline
Vary: Accept-Encoding\newline
Content-Length: 6743\end{lstlisting}

\textbf{2. Abfrage einer Seite}
\begin{lstlisting}[breaklines]GET /HTTP-Headers-Page-Speed HTTP/1.1\newline
Host: www.gocher.me\newline
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0\newline
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\newline
Accept-Language: de-de,en-us;q=0.7,en;q=0.3\newline
Accept-Encoding: gzip, deflate\newline
Referer: http://www.gocher.me/HTTP-Headers-Page-Speed\newline
Cookie: SESSIONID=978799800@217.6.30.230\newline
Connection: keep-alive\newline
If-Modified-Since: Mon, 10 Jun 2013 22:20:14 GMT\newline
If-None-Match: \&quot;733cc4ef9c9330f0db860bba9940c118\&quot;\newline
Cache-Control: max-age=0\newline
\newline
HTTP/1.1 304 Not Modified\newline
Server: Microsoft-IIS/7.5\newline
X-Powered-By: ISAPI CMS v4.1.3, Udo Schmal\newline
Connection: keep-alive\newline
Cache-Control: max-age=604800, must-revalidate\newline
Date: Mon, 02 Sep 2013 08:36:53 GMT\newline
Last-Modified: Mon, 10 Jun 2013 22:20:14 GMT\newline
Content-Type: text/html; charset=utf-8\newline
Etag: \&quot;353dd799aee54b3c4cca0f5b4939e7ad\&quot;\newline
Content-Location: http://www.gocher.me/HTTP-Headers-Page-Speed\newline
Content-Length: 0\newline
\end{lstlisting}

\begin{enumerate}
\item Generierung von minimalen Code durch natives einsetzen einer JSmin/CSSmin - Funktion, wodurch alle unnötigen Zeichen aus Javascript/Stylesheet Dateien (das sind die Dateien, die für Aktionen/Layout im Internet-Auftritt zuständig sind) entfernt werden.
\item Statische Inhalte wie Bilder, Videos, Audios aber auch Javascripts und Stylesheets werden von einer staischen Domain geladen, auf der Session-Cookies deaktiviert sind, was die Verarbeitungszeit verringert. Des weiteren ist Expires die Ablaufzeit (Gültigkeitszeit) auf einen Höheren Wert eingestellt.
\end{enumerate}
\end{document}