<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ROAE-Blog &#187; dns</title>
	<atom:link href="http://blog.root-of-all-evil.com/tag/dns/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.root-of-all-evil.com</link>
	<description>Studium, Codeing und Gedachtes</description>
	<lastBuildDate>Mon, 30 Jan 2012 22:58:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Serverseitig den Webseitenaufbau mit DNS CNAMES und mehr parallele HTTP-Verbindungen beschleunigen</title>
		<link>http://blog.root-of-all-evil.com/2010/02/serverseitig-den-webseitenaufbau-mit-dns-cnames-und-mehr-parallele-http-verbindungen-beschleunigen/</link>
		<comments>http://blog.root-of-all-evil.com/2010/02/serverseitig-den-webseitenaufbau-mit-dns-cnames-und-mehr-parallele-http-verbindungen-beschleunigen/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 13:44:43 +0000</pubDate>
		<dc:creator>Philipp</dc:creator>
				<category><![CDATA[Codeschnipsel]]></category>
		<category><![CDATA[Guides]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projekt]]></category>
		<category><![CDATA[beschleunigen]]></category>
		<category><![CDATA[bilder]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[cnames]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[media]]></category>

		<guid isPermaLink="false">http://blog.root-of-all-evil.com/?p=380</guid>
		<description><![CDATA[Man stelle sich folgendes Szenario vor: Es existiert eine Webseite, die eine Vielzahl von Grafiken, die auf dem gleichem Server hinterlegt sind, einbindet. Diese Webseite wird erfahrungsgemäß eine überdurchschnittlich lange Ladezeit haben. Aber nicht nur aufgrund der zu übertragenen Datenmengen, sondern auch aufgrund der maximalen Anzahl von Verbindungen, die ein Browser auf ein und denselben Server erlaubt. Hier werde ich etwas über die Beschleunigung vom Aufbau von Webseiten schreiben. Dabei verwende ich gewisse DNS Einstellungen, so genannte CNAME-Records mit denen ich serverseitig mehrere parallele HTTP-Verbindungen erlauben kann und so das Laden der Webseite durch den Browser des Nutzers beschleunige.<p class="read-more"><a href="http://blog.root-of-all-evil.com/2010/02/serverseitig-den-webseitenaufbau-mit-dns-cnames-und-mehr-parallele-http-verbindungen-beschleunigen/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://blog.root-of-all-evil.com/2010/02/serverseitig-den-webseitenaufbau-mit-dns-cnames-und-mehr-parallele-http-verbindungen-beschleunigen/" title="Serverseitig den Webseitenaufbau mit DNS CNAMES und mehr parallele HTTP-Verbindungen beschleunigen"></a><p>Man stelle sich folgendes Szenario vor: Es existiert eine Webseite, die eine Vielzahl von Grafiken, die auf dem gleichem Server hinterlegt sind, einbindet. Diese Webseite wird erfahrungsgemäß eine überdurchschnittlich lange Ladezeit haben. Aber nicht nur aufgrund der zu übertragenen Datenmengen, sondern auch aufgrund der maximalen Anzahl von Verbindungen, die ein Browser auf ein und denselben Server erlaubt. Hier werde ich etwas über die Beschleunigung vom Aufbau von Webseiten schreiben. Dabei verwende ich gewisse DNS Einstellungen, so genannte CNAME-Records mit denen ich serverseitig mehrere parallele HTTP-Verbindungen erlauben kann und so das Laden der Webseite durch den Browser des Nutzers beschleunige.<br />
<span id="more-380"></span></p>
<p>Standardmäßig sind moderne Browser mit maximalen Anzahl von <a href="http://stevesouders.com/ua/report.php?v=top&amp;nosparse=1" target="_blank">sechs Verbindungen (IE 6 und IE 7 maximal zwei Verbindungen)</a> zu ein und demselben Host begrenzt. Das führt dazu, dass das Laden von Dateien (Bilder, HTML-Seiten, JavaScripts oder Stylesheets) von einer Webseite in Blöcken unterteilt wird. Dabei würde es um einiges schneller gehen können, wenn ich die zu ladenden Dateien auf verschiedene Hostnamen verteile. So können für jeden Hostnamen mehr Verbindungen gleichzeitig ermöglicht werden.</p>
<p>Man betrachte zum Beispiel Google Maps. Die angezeigte Karte besteht aus einer vielzahl von so genannten Tiles. Tiles sind einfach Kacheln. Jede Kachel stellt einen Kartenausschnitt dar:</p>
<p><img class="aligncenter size-full wp-image-383" title="2009-08-13_1515-526x395" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/02/2009-08-13_1515-526x395.png" alt="" width="526" height="395" /></p>
<p>Damit die Karte schnellstmöglich trotz der Browserbegrenzung von sechs Verbindungen geladen werden kann, verteilt Google Maps die zu ladenden Kacheln auf verschiedene Hostnamen (Subdomains). Google verwendet vier Subdomains: mt0, mt1, mt2 und mt3.google.de:</p>
<p><img class="aligncenter size-full wp-image-384" title="2009-08-13_1520-526x326" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/02/2009-08-13_1520-526x326.png" alt="" width="526" height="326" /></p>
<p>Grundsätzlich ist es kein großes Problem verschiedene Subdomains anzulegen und die Dateien einer Webseite auf diese Subdomains zu verteilen. Allerdings besteht so recht schnell die Gefahr, dass man als Administrator den Überblick verliert, wo welche Dateien abgespeichert sind. Einfacher wäre es, zB. alle Mediendateien (zB. Bilder, Videos) unter einer Subdomain abzuspeichern. Um das Laden der Startseite erheblich zu beschleunigen, aber ohne zahlreiche Subdomains zu arbeiten kann man wie folgt vorgehen:</p>
<ol>
<li> Ich lege unter der Hauptdomain eine einzige subdomain namens  media.domain an. Hier speichere ich alle Bilder ab.</li>
<li>Ich lege so genannte CNAMES Einträge in meinen DNS Einstellungen an.  Ein CNAME ist &#8211; einfach erklärt &#8211; ein Domain-Alias. In meinem Fall  wähle ich zwei CNAME-Einträge namens &#8220;media0.domain.de&#8221; und  &#8220;media1.domain.de&#8221; an. Am einfachsten geht es über die Adminoberfläche  Plesk und sieht folgendermaße aus:<img class="aligncenter size-full wp-image-385" title="2009-08-13_1601" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/02/2009-08-13_1601.png" alt="" width="520" height="209" /></li>
<li>Diese beiden Einträge bewirken, dass media0.domain.de und  media1.domain.de auf die gleiche subdomain media.domain.de umleiten. Ich  habe jetzt also eine Subdomain, die auf drei unterschiedliche Weisen  erreicht werden kann. Der Browser des Nutzers interpretiert die drei  Domains als drei unterschiedliche Adressen, die aber auf den gleichen  Speicherort verweisen. So sind drei mal so viele Verbindungen zum eigentlich  gleichen Host möglich. Der Browser wird einfach ausgetrickst.</li>
<li>Bei der Einbindung der Bilder in die Webseite muss ich jetzt nur die  zwei verschiedenen &#8220;subdomains&#8221; media0 und media1 verteilen. Ich löse  das über einen Zufallsgenerator in meinem PHP Script, dass den HTML-Code  generiert. Dieser könnte zB. so aussehen:</li>
</ol>
<pre class="php" title="code">$media_domains = array('media0', 'media1');
foreach($bilder as $bild) {
  shuffle($media_domains);
  echo('&lt;img src="' . $media_domains[0] . '.domain.tld/img/'. $bild . '" /&gt;');
}</pre>
<p>Und fertig. Kommentare, Verbesserungsvorschlage? Dazu sind die Kommentare da.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.root-of-all-evil.com/2010/02/serverseitig-den-webseitenaufbau-mit-dns-cnames-und-mehr-parallele-http-verbindungen-beschleunigen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

