<?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>Onlinemagazin: devmag.net &#187; Servertechnik</title>
	<atom:link href="http://www.devmag.net/category/servertechnik/feed" rel="self" type="application/rss+xml" />
	<link>http://www.devmag.net</link>
	<description>Regelmäßig neue Artikel rund um das Homepage Bauen mit HTML, CSS, AJAX, PHP und XML.</description>
	<lastBuildDate>Sun, 30 Oct 2011 18:38:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Telnet Access &#8211; Unix Dateisystem</title>
		<link>http://www.devmag.net/servertechnik/110-telnet-access-unix-dateisystem.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=telnet-access-unix-dateisystem</link>
		<comments>http://www.devmag.net/servertechnik/110-telnet-access-unix-dateisystem.html#comments</comments>
		<pubDate>Tue, 16 Dec 2008 10:00:00 +0000</pubDate>
		<dc:creator>Thiemo</dc:creator>
				<category><![CDATA[Servertechnik]]></category>

		<guid isPermaLink="false">http://www.devmag.net/?p=110</guid>
		<description><![CDATA[Weiterf&#252;hrende Links:Telnet Access &#8211; Unix Ecke für Webmaster


Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/servertechnik/109-telnet-access-unix-ecke-fur-webmaster.html' rel='bookmark' title='Permanent Link: Telnet Access &#8211; Unix Ecke für Webmaster'>Telnet Access &#8211; Unix Ecke für Webmaster</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p style="float: right;margin: 4px;"><div class="adslot-468" >
<script type="text/javascript"><!--
google_ad_client = "pub-7748812030658677";
/* 468x60, Erstellt 20.08.09 */
google_ad_slot = "9850520828";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></p> <p><img src="http://www.devmag.net/wp-content/uploads/illu_unix_telnet_access_dateisystem.gif" width="60" height="60" class="illu" align="left" />
              Im zweiten Teil des Telnet, Unix, Linux Workshops lernen Sie das
              Dateisystem von *nix Umgebungen kennen. Zudem lernen Sie, wie Sie
              ihre Telnet-Sessions aufzeichnen, und ihnen werden noch weitere
              Funktionen erkl&auml;rt.<span id="more-110"></span>            <H4>Eine Datei komprimieren</H4>
            <p>Komprimieren Sie gro&szlig;e Dateien bevor Sie diese &uuml;bertragen
              - Sie sparen Zeit und Geld. Wenn Sie zum Beispiel Ihre Logdatei
              von Zeit zu Zeit vom Server downloaden m&ouml;chten, bedenken Sie
              dass diese Datei bereits bei 300 Besuchern Ihrer Site eine Gr&ouml;&szlig;e
              von &gt; 1 MB haben kann, denn jeder Zufriff auf ein <I>*.gif</I>
              erzeugt eine Zeile in dieser Logdatei. Zum Komprimieren einer Datei
              auf der UNIX - Befehlszeile (Telnet) geben Sie im aktuellen Pfad
              folgendes ein: </p>
            <pre><code>gzip -9 dateiname</code></pre>
            <p>Der Schalter <i>-9</i> bewirkt dabei eine maximale Komprimierung
              und das Ergebnis ist die gepackte Datei mit einer Endung <i>dateiname.gz</i>.
              Nach der &Uuml;bertragung k&ouml;nnen Sie die Datei wieder auspacken
              mit der folgenden Kommandozeile: </p>
            <PRE><code>gzip -d dateiname.gz</code></PRE>
            <p>Im Ergebnis dessen wird auch der Originaldateiname wieder hergestellt.
            </p>
            <h4>UNIX Dateirechte</h4>
            <p>UNIX Dateirechte beziehen sich auf </p>
            <PRE><code>Owner (Besitzer)   Group (Gruppe)   All (Welt)</code></PRE>
            <p>und beinhalten die Rechte: </p>
            <UL>
              <LI>r Read (Lesen)
              <LI>w Write (Schreiben)
              <LI>x Execute (Ausf&uuml;hren)
            </UL>
            <p>Dazu gleich ein Beispiel, angenommen das Kommando <I>ls -l</I>
              zeigt folgende Dateiattribute: </p>
            <PRE><code>-rwx-wx--x</code></PRE>
            <p>Den ersten Bindestrich ('-' = Datei, 'd' = Verzeichnis, 'l' = Link)
              denken Sie sich mal weg und sehen sie es so: </p>
            <PRE><code>Owner (Besitzer)   Group (Gruppe)   All (Welt)</code></PRE>
            <pre><code>rwx                -wx              --x</code></pre>
            <p>Jetzt d&uuml;rfte es schon deutlicher werden... </p>
            <UL>
              <LI>Der Besitzer hat Lese- und Schreiberecht und darf die Datei
                ausf&uuml;hren
              <LI>Die Gruppe darf nur Schreiben und ausf&uuml;hren
              <LI>alle Anderen d&uuml;rfen nur ausf&uuml;hren
            </UL>
            <p>Gesetzt werden diese Attribute mit dem Kommando <i>chmod</i>, der
              Syntax ist wie folgt: </p>
            <PRE><code>chmod XYZ dateiname oder
chmod XYZ *.* (alle Dateien)</code></PRE>
            <p><I>XYZ</I> ist ein Oktalcode, dabei steht der Wert in </p>
            <UL>
              <LI>X f&uuml;r den Owner
              <LI>Y f&uuml;r die Gruppe
              <LI>Z f&uuml;r alle Anderen
            </UL>
            <p>Der Oktalcode in X, Y oder Z errechnet sich als die Summe von </p>
            <UL>
              <LI>4 f&uuml;r read
              <LI>2 f&uuml;r write
              <LI>1 f&uuml;r execute
            </UL>
            Die Attribute der Datei aus dem obigen Beispiel wurden also mit dem
            Kommando
            <pre><code>chmod 731 dateiname</code></pre>
            <p>Entspricht <i>chmod 666</i><br>
              <IMG SRC="http://www.devmag.net/wp-content/uploads/unix_3.gif" BORDER=0 WIDTH=323 HEIGHT=169 ALT="WinCmd FTP Attribute">
            </p>
            <p>
            <H4>CGI - Scripte ausf&uuml;hrbar machen</H4>
            <p>In Perl geschriebene CGI - Scripten m&uuml;ssen mit "chmod 755"
              ausf&uuml;hrbar gemacht werden, sonst meldet der Webserver einen
              500er Error. Die &Auml;nderung des Mode's kann auf der Befehlszeile
              genauso erfolgen wie weiter oben beschrieben oder mit der grafischen
              Oberfl&auml;che eines FTP - Client's f&uuml;r Windows. Verbreitet
              und allgemein beliebt ist auch das Programm <A HREF="http://www.ipswitch.com/" target="_blank">&nbsp;WS_FTP</A>
              und der Vollst&auml;ndigkeit halber ist hier auch noch ein Screenshot,
              welcher den "Change Mode 755" grafisch beschreibt (Die Datei ist
              in der rechten Fensterh&auml;lfte von WS_FTP mit der rechten Maustaste
              anzuklicken und aus dem Kontextmenu der Punkt "chmod UNIX" auszuw&auml;hlen):
            </p>
            <p> <img src="http://www.devmag.net/wp-content/uploads/unix_4.gif" width="450" height="271">
                       <h4>Telnet Session aufzeichnen</h4>
            <p>Zum Mitschneiden von Befehlsausgaben in einer Telnet-Session bieten
              die meisten Telnet-Clients die M&ouml;glichkeit des Protokollierens.
              So auch das "Telnet"-Programm von Windows: <br>
              <img src="http://www.devmag.net/wp-content/uploads/unix_5.gif" width="176" height="90" border="0" alt="Telnet Protokollieren">
              <br>
              Nach der Auswahl des o.gezeigten Menupunktes kann der Pfad und der
              Name eines Logfiles angegeben werden wo alles was auf der Telnet-Befehlszeile
              passiert dann drinsteht (auch Ausgaben von Dateien). </p>
            <h4>N&uuml;tzliche Kommandos</h4>
            <p>Mit dem Kommando "cat" kann der Inhalt von ASCII-Files ausgegeben
              werden wie weiter oben schon beschrieben. Handelt es sich jedoch
              um gr&ouml;&szlig;ere Dateien und soll ggf. nur nach bestimmten
              Begriffen gesucht werden, so gibt es auch daf&uuml;r ein paar M&ouml;glichkeiten...
            </p>
            <p>
            <pre><code>tail -20 error_log</code></pre>
            <p>Zeigt die letzten 20 Zeilen der Datei "error_log". </p>
            <p>
            <pre><code>head -1 access_log</code></pre>
            <p>Zeigt die erste Zeile der Datei "access_log" </p>
            <p>
            <pre><code>grep passwd access_log</code></pre>
            <p>Zeigt jede Zeile des Zugriffs auf "passwd" (auch versuchte Zugriffe).
              Der String hinter <i>grep</i> muss nur im Falle von Sonder- oder
              Leerzeichen in "" gesetzt werden. <br>
              Vielen dank an Herrn Rolf Rost von <a href="http://www.i-netlab.de" target="_blank">I-NetLab</a>,
              der uns den Artikel zur Verf&uuml;gung gestellt hat. Bei Fragen
              k&ouml;nnen Sie sich an ihn wenden. Auf seiner Webseite finden Sie
              ein Kontakt-Formular. </p></p>


<p>Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/servertechnik/109-telnet-access-unix-ecke-fur-webmaster.html' rel='bookmark' title='Permanent Link: Telnet Access &#8211; Unix Ecke für Webmaster'>Telnet Access &#8211; Unix Ecke für Webmaster</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.devmag.net/servertechnik/110-telnet-access-unix-dateisystem.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Telnet Access &#8211; Unix Ecke für Webmaster</title>
		<link>http://www.devmag.net/servertechnik/109-telnet-access-unix-ecke-fur-webmaster.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=telnet-access-unix-ecke-fur-webmaster</link>
		<comments>http://www.devmag.net/servertechnik/109-telnet-access-unix-ecke-fur-webmaster.html#comments</comments>
		<pubDate>Sun, 16 Nov 2008 10:00:00 +0000</pubDate>
		<dc:creator>Thiemo</dc:creator>
				<category><![CDATA[Servertechnik]]></category>

		<guid isPermaLink="false">http://www.devmag.net/?p=109</guid>
		<description><![CDATA[Weiterf&#252;hrende Links:Telnet Access &#8211; Unix Dateisystem Suchfunktionen für knausrige Webmaster


Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/servertechnik/110-telnet-access-unix-dateisystem.html' rel='bookmark' title='Permanent Link: Telnet Access &#8211; Unix Dateisystem'>Telnet Access &#8211; Unix Dateisystem</a></li>
<li><a href='http://www.devmag.net/seo/124-suchfunktionen-fur-knausrige-webmaster.html' rel='bookmark' title='Permanent Link: Suchfunktionen für knausrige Webmaster'>Suchfunktionen für knausrige Webmaster</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.devmag.net/wp-content/uploads/illu_unix_telnet_access.gif" width="60" height="60" class="illu" align="right" alt="Telnet Access - Unix Ecke f&uuml;r Webmaster" />
              In diesem Workshop lernen Sie, wie man &uuml;ber Telnet auf einen
              Webserver zugreift, und &uuml;ber die Unix bzw. Linux Kommandozeile,
              Befehle auf dem Server ausf&uuml;hrt.<span id="more-109"></span>            <H4>Einloggen mit Telnet</H4>
            <p>Wenn Ihr Provider f&uuml;r Sie einen Telnet - Zugang eingerichtet
              hat, k&ouml;nnen Sie sich auf dem UNIX- (bzw. LINUX-) Server &uuml;ber
              Telnet einloggen und UNIX-Kommandos auf dem Server ausf&uuml;hren.
              F&uuml;r Windows95/98 und f&uuml;r WinNT gibt es einen Telnet -
              Client den Sie entweder im Startmenue finden oder &uuml;ber eine
              Befehlszeile aufrufen k&ouml;nnen. Sie sehen daraufhin folgendes
              Bild: </p>
            <p> <IMG SRC="http://www.devmag.net/wp-content/uploads/unix_1.gif" BORDER=0 WIDTH=183 HEIGHT=158 ALT="Telnet - Menue">
            <p> Zum Verbinden mit dem Server klicken sie also auf den gezeigten
              Menuepunkt und geben bei <i>Hostname</i> den Namen des Servers bzw.
              dessen IP - Adresse an:
            <p> <IMG SRC="http://www.devmag.net/wp-content/uploads/unix_2.gif" BORDER=0 WIDTH=244 HEIGHT=175 ALT="Server angeben">
            <p> Was nun folgt ist der Prompt an denen Sie Ihren Benutzernamen
              und Ihr Passwort eingeben m&uuml;ssen - und Sie landen in Ihrem
              <i>Home - Verzeichnis</i> welches Ihr Provider f&uuml;r Sie eingerichtet
              hat. Zum Wechseln in ein anderes Verzeichnis innerhalb Ihres Webbaumes
              benutzen Sie die folgenden Kommandos:
            <PRE><code>
cd ..         <br> wechselt eine Verzeichnisebene h&ouml;her, beachten Sie<br> das Leerzeichen
<br>cd verzeichnis <br>wechselt in das gew&uuml;nschte Verzeichnis</code>
</PRE>
            <p>Wenn Sie nicht mehr wissen wo sie sind geben Sie einfach ein: </p>
            <PRE><code>pwd            zeigt Ihnen den Pfad</code></PRE>
            Und schlie&szlig;lich kommen Sie mit
            <PRE><code>cd             bringt Sie in Ihr Homeverzeichnis</code></PRE>
            <p>immer wieder "heim". Mit dem Kommando </p>
            <PRE><code>ls             entspricht etwa dem Dir im DOS</code></PRE>
            <p>k&ouml;nnen Sie sich die Inhalte der Verzeichnisse auflisten. Es
              gibt etliche Schalter f&uuml;r dieses Kommando: </p>
            <PRE><code>ls --help      Die Hilfe wird gezeigt
</code></PRE>
            <p>Beispiele: </p>
            <PRE><code>ls -l          Langes Ausgabeformat
ls -a          Alle Dateien werden angezeigt
ls -la         Schalter "-l" und "-a" kombiniert</code></PRE>
            <p>Weitere Kommandos: </p>
            <PRE><code>md             Anlegen eines Verzeichnisses
rd             L&ouml;schen eines Verzeichnisses
cp             Kopieren von Dateien
mv             Bewegen von Dateien
rm             L&ouml;schen von Dateien
cat            Inhalt von ASCII Dateien anzeigen
</code></PRE>
            <p>
            <H4>Einen Cronjob erzeugen</H4>
            <p>H&auml;ufig besteht die Aufgabe bestimmte Scripten periodisch ablaufen
              zu lassen, wenn zum Beispiel der Index einer Suchmaschine mit einem
              Script t&auml;glich neu erstellt werden soll oder andere Aufgaben.
              Derartiges kann der <i>cron - D&auml;mon</i> f&uuml;r Sie erledigen,
              das ist ein Dienst welcher im Hintergrund l&auml;uft. Sie m&uuml;ssen
              diesem Dienst nur mitteilen wann er was zu machen hat und das geht
              mit dem Kommando <i>crontab</i>: </p>
            <PRE><code>crontab -l     Liste Ihrer Cronjobs
crontab -e     Edit - Modus zum Hinzuf&uuml;gen / L&ouml;schen von ...
crontab -r     Remove (L&ouml;schen) aller Cronjobs
</code></PRE>
            <p>Mit <i>crontab -e</i> wird der Standardeditor aufgerufen, das ist
              normalerweise der <i>VI</i> dessen wichtigste Befehle Sie kennen
              sollten: </p>
            <PRE><code>i              Schaltet den VI in den Insertmodus
ESC            Schaltet den VI in den Befehlsmodus
x              L&ouml;scht ein Zeichen (Befehlsmodus)
:q             Sie verlassen den VI (Befehlsmodus)
:wq            Write + Quit: Verlassen mit Speichen
:q!            Verlassen ohne Speichern
</code></PRE>
            <p>Wenn Sie sich nicht ganz sicher sind mit dem <i>VI</i> &uuml;ben
              Sie einfach mit einer Testdatei in ihren Homeverzeichnis. Falls
              Sie unter Windows Ihre Projekte entwickeln und sich Offline mit
              dem <I>VI</I> vertraut machen wollen, k&ouml;nnen Sie sich auch
              den <A HREF="http://www.thomer.com/thomer/vi/vi.html" target="_blank">WinVi</A>
              downloaden, installieren und die wichtigsten Befehlsmodi einstudieren.
            </p>
            <p> Der Syntax in der Crontab - Datei sieht so aus:
            <PRE><code>min std tag mon wotag kommando
</code></PRE>
            <p>Und dazu gleich ein Beispiel: </p>
            <PRE><code>
00  00   *  *  *  perl /home/i-netlab.de/cgi-bin/ice2-idx.pl
</code></PRE>
            <p>Das Beispiel bewirkt ein t&auml;gliches Ausf&uuml;hren des Scriptes
              "ice2-idx.pl" um Mitternacht / Null - Uhr. Nachdem Sie also <i>crontab
              -e</i> am Telnet eingegeben haben landen Sie im VI und geben nacheinander
              folgendes ein: </p>
            <UL>
              <LI>"i" (um in den Edit - Modus zu kommen)
              <LI>"min std tag mon wotag kommando"
              <LI>"ESC" (um in den Befehlsmodus zu kommen)
              <LI>":"
              <LI>"wq" (wq hinter dem Doppelpunkt eingeben zum Verlassen mit Speichern)
            </UL>
            <p>Den Output des mit <I>crontab</I> gestarteten Befehls (oder Scripts)
              finden Sie in Ihrer UNIX - mail wieder: hier steht das geschrieben
              was der Befehl normalerweise auf die Standardausgabe schreiben w&uuml;rde.
              Das Programm "Mail" rufen Sie am Telnet wie folgt auf: </p>
            <PRE><code>mail</code></PRE>
            <p><i>Mail</i> zeigt eine Liste der Mails, mit der Eingabe der Nummer
              wird Ihnen die entsprechende Mail anzezeigt. Hinter dem &amp; -
              Zeichen k&ouml;nnen Sie auch das "?" eingeben um weitere Hilfe zu
              bekommen. </p>
            <H4>Einen Prozess starten und sich abmelden</H4>
            <p>Manchmal besteht die Aufgabe, einen Prozess oder ein Script auf
              dem Webserver - Linux -Rechner lediglich zu starten und sich dann
              gleich wieder abzumelden, insbesondere wenn der Prozess l&auml;nger
              dauert, als man Online bleiben m&ouml;chte. Dazu gibt es f&uuml;r
              jedes unter UNIX abgesetzes Kommando den Parameter <i>nohup</i>
              (No Hang Up), welcher einfach an den Befehlsstring drangeh&auml;ngt
              wird. Um diesen Prozess auch noch in den Hintergrund zu schicken,
              ist am Ende der Kommandozeile einfach noch das <i>Kaufmanns - Und</i>
              "&amp;" anzuh&auml;ngen. Beispielsweise soll das Script "langes_script.pl"
              gestartet werden und danach gleich die Abmeldung erolgen, der Befehlsstring
              s&auml;he dann so aus: </p>
            <pre><code>perl langes_script.pl nohup &amp;</code></pre>
            <p>Die nach dem Absetzen eines derartigen Kommandos angezeigte Prozess
              - ID z.B.: <i>[1] 19007</i> kann dabei durchaus notiert werden...
              nach der Abmeldung l&auml;uft das Script weiter. 
            </p>
            <p>Vielen dank an Herrn Rolf Rost von <a href="http://www.i-netlab.de" target="_blank">I-NetLab</a>,
              der uns den Artikel zur Verf&uuml;gung gestellt hat. Bei Fragen
              k&ouml;nnen Sie sich an ihn wenden. Auf seiner Webseite finden Sie
              ein Kontakt-Formular. </p></p>


<p>Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/servertechnik/110-telnet-access-unix-dateisystem.html' rel='bookmark' title='Permanent Link: Telnet Access &#8211; Unix Dateisystem'>Telnet Access &#8211; Unix Dateisystem</a></li>
<li><a href='http://www.devmag.net/seo/124-suchfunktionen-fur-knausrige-webmaster.html' rel='bookmark' title='Permanent Link: Suchfunktionen für knausrige Webmaster'>Suchfunktionen für knausrige Webmaster</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.devmag.net/servertechnik/109-telnet-access-unix-ecke-fur-webmaster.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mod_rewrite und dynamische Websiten</title>
		<link>http://www.devmag.net/servertechnik/106-mod_rewrite-und-dynamische-websiten.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mod_rewrite-und-dynamische-websiten</link>
		<comments>http://www.devmag.net/servertechnik/106-mod_rewrite-und-dynamische-websiten.html#comments</comments>
		<pubDate>Tue, 16 Sep 2008 10:00:00 +0000</pubDate>
		<dc:creator>Thiemo</dc:creator>
				<category><![CDATA[Mod_rewrite]]></category>
		<category><![CDATA[Servertechnik]]></category>

		<guid isPermaLink="false">http://www.devmag.net/?p=106</guid>
		<description><![CDATA[Weiterf&#252;hrende Links:mod_rewrite &#8211; Was tun wenn sich die Dateiendung ändert? mod_rewrite &#8211; Mit oder ohne &#8220;www&#8221; Caching von Websiten


Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/servertechnik/107-mod_rewrite-was-tun-wenn-sich-die-dateiendung-andert.html' rel='bookmark' title='Permanent Link: mod_rewrite &#8211; Was tun wenn sich die Dateiendung ändert?'>mod_rewrite &#8211; Was tun wenn sich die Dateiendung ändert?</a></li>
<li><a href='http://www.devmag.net/servertechnik/108-mod_rewrite-mit-oder-ohne-www.html' rel='bookmark' title='Permanent Link: mod_rewrite &#8211; Mit oder ohne &#8220;www&#8221;'>mod_rewrite &#8211; Mit oder ohne &#8220;www&#8221;</a></li>
<li><a href='http://www.devmag.net/servertechnik/100-caching-von-websiten.html' rel='bookmark' title='Permanent Link: Caching von Websiten'>Caching von Websiten</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.devmag.net/wp-content/uploads/illu_mod_rewrite_1.gif" width="60" height="60" class="illu" align="left" alt="mod_rewrite und dynamische Websiten" />Mit dem Apache Modul mod_rewrite k&ouml;nnen Sie ihre dynamischen
              Websiten suchmachinenfreundlicher machen, indem der URL einfach
              ein wenig angepasst wird.<span id="more-106"></span>            <p>Mit dem Apache Modul mod_rewrite k&ouml;nnen Sie ihre Websiten
              <br>
              suchmachinenfreundlicher machen. Eine Suchmaschine erkennt eine
              dynamische Webseite an dem &quot;<b>?</b>&quot; bei dem URL. Manche
              Suchmachinen geben schon bei der Sicht dieses Fragezeichen die Indexierung
              auf. Auch Dateien mit der Dateiendung <b>*.php</b>, oder <b>*.pl</b>
              werden oftmals<br>
              nicht (korrekt) indexiert.<br>
              Dies kann unter der Verwendung des mod_rewrite verhindert werden.
              Das Ziel ist es, die &quot;?&quot;, und die Wertzuweisungen als
              Parameter in dem URL durch einen &quot;/&quot; zu ersetzen.<br>
              Abgerundet kann dies noch dadurch werden, das die dynamischen Dateiendungen
              z.B. durch *.html oder *.shtml ersetzt werden.<br>
              <br>
              Der URL, z.B. zu einem Newsskript sieht anfangs noch so aus<br>
              <br>
              http://www.seite.de/news.php?nr=1<br>
              <br>
              Besser w&auml;re es nat&uuml;rlich, wenn der URL am Ende so aussehen
              w&uuml;rde.<br>
              <br>
              http://www.seite.de/news/1.html<br>
              <br>
              Zun&auml;chst muss definiert werden, wie, und was das mod_rewrite
              in dem <br>
              Fall an dem URL ver&auml;ndern soll. Zun&auml;chst einmal das Fragezeichen,
              es <br>
              soll durch einen / ersetzt werden. Die Dateiendung *.php soll komplett
              aus dem URL verschwinden, auch die Wertzuweisung des Parameters
              nr=&quot;&quot; soll ganz ersetzt werden. Der Apache soll anhand
              des URL die entsprechende nr automatisch ermitteln, und an das Skript
              &uuml;bergeben.<br>
              <br>
              Zun&auml;chst muss die RewriteEngine auf on geschaltet werden. Danach
              wird die RewriteRule, die Regel definiert.<br>
              <br>
              <code>RewriteEngine on <br>
              RewriteRule ^news/(.*)\.html$ news.php?nr=$1 </code><br>
              <br>
              Das wirkliche Umschreiben des URL macht die <b>RewriteRule</b>.
              Mit ihr wird <br>
              die &quot;Regel&quot; definiert, nach welcher der URL ver&auml;ndert
              werden soll.<br>
              <code>news/(.*)\.html$</code><br>
              Das <b>(.*)</b> nach news/ kann f&uuml;r alles stehen, es ist eine
              Art Platzhalter, der innerhalb des Regul&auml;ren Ausdrucks wie
              eine Variable verwendet werden kann.<br>
              Da es der erste Platzhalter ist, wird es als Variable <b>$1</b>
              definiert.<br>
              In unserem Beispiel ist die Variable die Nummer der News. <br>
              Durch einen\ getrennt steht die Dateiendung des Artikels,<br>
              <br>
              Der URL sieht jetzt so aus.</p>
            <p>http://www.seite.de/news/nummer.html<br>
              <br>
              Das $ Zeichen definiert das Ende des Regul&auml;ren Ausdrucks. Dahinter
              steht der &quot;wirkliche&quot; URL zu dem Skript, aus welchem das
              Ergebnis der Abfrage geholt wird, und &uuml;ber den anscheinenden
              URL ausgegeben wird.</p>
            <p><code>/news.php?nr=$1</code></p>
            <p>Das $1 steht wie gesagt f&uuml;r die Artikelnummer.<br>
              Und das ist auch schon alles. Anfragen werden jetzt &uuml;ber beide
              Adressen behandelt, zum einen direkt an das Skript, &uuml;ber den
              gew&ouml;hnlichen URL, oder &uuml;ber den vom mod_rewrite erzeugen
              URL. <br>
              <br>
              Mit dem mod_rewrite l&auml;sst sich auf diese Art vieles machen.
              Wer die M&ouml;glichkeit hat, mit dem Modul zu arbeiten, der sollte
              diese auf jeden Fall wahrnehmen.
            </p></p>


<p>Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/servertechnik/107-mod_rewrite-was-tun-wenn-sich-die-dateiendung-andert.html' rel='bookmark' title='Permanent Link: mod_rewrite &#8211; Was tun wenn sich die Dateiendung ändert?'>mod_rewrite &#8211; Was tun wenn sich die Dateiendung ändert?</a></li>
<li><a href='http://www.devmag.net/servertechnik/108-mod_rewrite-mit-oder-ohne-www.html' rel='bookmark' title='Permanent Link: mod_rewrite &#8211; Mit oder ohne &#8220;www&#8221;'>mod_rewrite &#8211; Mit oder ohne &#8220;www&#8221;</a></li>
<li><a href='http://www.devmag.net/servertechnik/100-caching-von-websiten.html' rel='bookmark' title='Permanent Link: Caching von Websiten'>Caching von Websiten</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.devmag.net/servertechnik/106-mod_rewrite-und-dynamische-websiten.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mod_rewrite &#8211; Was tun wenn sich die Dateiendung ändert?</title>
		<link>http://www.devmag.net/servertechnik/107-mod_rewrite-was-tun-wenn-sich-die-dateiendung-andert.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mod_rewrite-was-tun-wenn-sich-die-dateiendung-andert</link>
		<comments>http://www.devmag.net/servertechnik/107-mod_rewrite-was-tun-wenn-sich-die-dateiendung-andert.html#comments</comments>
		<pubDate>Tue, 16 Sep 2008 10:00:00 +0000</pubDate>
		<dc:creator>Thiemo</dc:creator>
				<category><![CDATA[Mod_rewrite]]></category>
		<category><![CDATA[Servertechnik]]></category>

		<guid isPermaLink="false">http://www.devmag.net/?p=107</guid>
		<description><![CDATA[Weiterf&#252;hrende Links:mod_rewrite &#8211; Mit oder ohne &#8220;www&#8221; mod_rewrite und dynamische Websiten


Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/servertechnik/108-mod_rewrite-mit-oder-ohne-www.html' rel='bookmark' title='Permanent Link: mod_rewrite &#8211; Mit oder ohne &#8220;www&#8221;'>mod_rewrite &#8211; Mit oder ohne &#8220;www&#8221;</a></li>
<li><a href='http://www.devmag.net/servertechnik/106-mod_rewrite-und-dynamische-websiten.html' rel='bookmark' title='Permanent Link: mod_rewrite und dynamische Websiten'>mod_rewrite und dynamische Websiten</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.devmag.net/wp-content/uploads/illu_mod_rewrite_2.gif" width="60" height="60" class="illu" align="right" alt="mod_rewrite - Was tun wenn sich die Dateiendung &auml;ndert?" />
              Devmag.net wurde komplett neu &uuml;berarbeitet. Dabei wurden alle
              Dateitypen von *.shtml auf *.htm Dateien ge&auml;ndert. Eine L&ouml;sung
              musste her, damit die Links nichts ins leere f&uuml;hrten. Das mod_rewrite
              bietet auch hier Abhilfe.<span id="more-107"></span>            <p>Das Problem lag darin, dass bei allen Unterseiten nur die Dateitypen
              (nicht die Dateinamen) ver&auml;ndert wurden. Aus *.shtml wurde
              *.htm. Wir wollten, das die externen Links nicht auf die Error 404Seite
              linken, das h&auml;tte wahrscheinlich viele Besucher gekostet.<br>
              <br>
              Mit einigen Zeilen &uuml;ber das mod_rewrite war das Problem aus
              der Welt <br>
              geschafft.<br>
              <br>
              <code> RewriteEngine on<br>
              RewriteRule (.*)\.shtml$ $1.htm</code><br>
              <br>
              Dies macht es m&ouml;glich, das die Anfrage an eine Datei <br>
              http://www.seite.de/news.shtml automatisch von <br>
              http://www.seite.de/news.htm beantwortet wird. <br>
              Wichtig hierbei ist, das Sie nur die Dateitypen &auml;ndern d&uuml;rfen,
              und nicht die Dateinamen.<br>
              <br>
              Die <b>RewriteRule</b> ist die Regel, mit welcher das ersetzen erfolgen
              soll <br>
              <b>(.*) </b>steht f&uuml;r ein oder beliebig viele Zeichen (keine
              Sonderzeichen), <br>
              das entspricht dem Dateinamen.<br>
              Es ist eine Art Variable, in der der Dateiname gespeichert wird.
              <br>
              Dieser ist innerhalb der RewriteRule weiterhin verf&uuml;gbar. Da
              es der <br>
              erste Platzhalter ist, wird der Wert &uuml;ber den Namen <b>$1 </b>angesprochen.<br>
              Alle Anfragen an <b>(.*)\.shtml$</b> werden dadurch an die entsprechende
              Seite <b>$1.htm</b> weitergeleitet.</p>
           </p>


<p>Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/servertechnik/108-mod_rewrite-mit-oder-ohne-www.html' rel='bookmark' title='Permanent Link: mod_rewrite &#8211; Mit oder ohne &#8220;www&#8221;'>mod_rewrite &#8211; Mit oder ohne &#8220;www&#8221;</a></li>
<li><a href='http://www.devmag.net/servertechnik/106-mod_rewrite-und-dynamische-websiten.html' rel='bookmark' title='Permanent Link: mod_rewrite und dynamische Websiten'>mod_rewrite und dynamische Websiten</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.devmag.net/servertechnik/107-mod_rewrite-was-tun-wenn-sich-die-dateiendung-andert.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TCP/ IP Protokoll &#8211; IP Adressen, Netzwerke, Subnetze</title>
		<link>http://www.devmag.net/servertechnik/98-tcp-ip-protokoll-ip-adressen-netzwerke-subnetze.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tcp-ip-protokoll-ip-adressen-netzwerke-subnetze</link>
		<comments>http://www.devmag.net/servertechnik/98-tcp-ip-protokoll-ip-adressen-netzwerke-subnetze.html#comments</comments>
		<pubDate>Fri, 06 Jun 2008 10:00:00 +0000</pubDate>
		<dc:creator>Thiemo</dc:creator>
				<category><![CDATA[Servertechnik]]></category>

		<guid isPermaLink="false">http://www.devmag.net/?p=98</guid>
		<description><![CDATA[Weiterf&#252;hrende Links:TCP/ IP Protokoll &#8211; Routing, Nat und Fehlersuche Email &#8211; Adressen verschl&#252;sseln


Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/servertechnik/99-tcp-ip-protokoll-routing-nat-und-fehlersuche.html' rel='bookmark' title='Permanent Link: TCP/ IP Protokoll &#8211; Routing, Nat und Fehlersuche'>TCP/ IP Protokoll &#8211; Routing, Nat und Fehlersuche</a></li>
<li><a href='http://www.devmag.net/html-tricks/265-email-adressen-verschlsseln.html' rel='bookmark' title='Permanent Link: Email &#8211; Adressen verschl&uuml;sseln'>Email &#8211; Adressen verschl&uuml;sseln</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.devmag.net/wp-content/uploads/illu_tcp_ip.gif" class="illu" width="60" height="60" align="left" alt="TCP/ IP Protokoll - IP Adressen, Netzwerke, Subnetze" />              &Uuml;ber das TCP/IP Protokoll und seine IP Adressen l&auml;uft
              die Komunikation zwischen den einzelnen Computern im Internet. <br>
              Der erste Teil der TCP/IP Einf&uuml;hrung gibt einen Einblick in
              die IP Adresse, und wie Netzwerke, auf dem TCP/IP Protokoll basierend,
              aufgebaut sind.<span id="more-98"></span>   <p>
            <h4>Schreibweise einer IP Adresse</h4>
            <p> Im Internet sind Rechner mit dem Protokoll (TCP/IP) miteinander
              verbunden. Damit in einem solchen Netz jede Maschine<b> identifiziert
              </b>werden kann, erh&auml;lt sie eine eindeutige IP-Adresse. Diese
              Adresse besteht in der derzeitigen IP-Version 4 aus einem <b>32
              Bit</b> ( 4 * 8 Bit) langen Feld und wird im allgemeinen als vier,
              durch Punkte voneinander getrennte Dezimalzahlen geschrieben (z.B.
              195.200.12.33), durch diese Byte Schreibweise ergibt sich eine bessere
              Lesbarkeit gegen&uuml;ber der Schreibweise 11000011.11001000.00001100.00100001
              um bei diesem Beispiel zu bleiben.
            <p>Eine andere Schreibweise dieser IP Adresse ergibt sich wie folgt:<br>
            <ul>
              195*256**3 + 200*256**2 + 12*256**1 + 33 = 3284667425
            </ul>
            <p>Eine solche "base 10" Schreibweise wird gerne von Spammern benutzt,
              um sich zu &quot;verstecken&quot;. </p>
            <p>Zum Umrechnen der verschiedenen Schreibweisen kann das Script <a href="http://www.i-netlab.de/cgi-bin/ipcalc.cgi" target="_blank">Berechnungen
              mit IP</a> vorteilhaft verwendet werden.
            <h4>Struktur von IP Adressen und Netzklassen</h4>
            <p>Es gibt 5 Klassen von Netzen: A, B, C, D und E. Betrachten wir
              nun die 3 wichtigsten Klassen, die folgenden Tabellen zeigen recht
              anschaulich deren Spezifikation:
            <p>
            <table border cellspacing=0 cellpadding=0 width="80%">
              <tr>
                <th colspan=5> Class A</th>
              </tr>
              <tr>
                <td> IP Adresse</td>
                <td bgcolor="#00BF00"> 195</td>
                <td> 200</td>
                <td> 132</td>
                <td> 38</td>
              </tr>
              <tr>
                <td> Netzmaske</td>
                <td> 255</td>
                <td> 0</td>
                <td> 0</td>
                <td> 0</td>
              </tr>
              <tr>
                <td> Struktur</td>
                <td> Netzanteil</td>
                <td> Hostanteil</td>
                <td> Hostanteil</td>
                <td> Hostanteil</td>
              </tr>
            </table>
            <p>
            <table border cellspacing=0 cellpadding=0 width="80%">
              <tr>
                <th colspan=5> Class B</th>
              </tr>
              <tr>
                <td> IP Adresse</td>
                <td bgcolor="#00BF00"> 192</td>
                <td bgcolor="#00BF00"> 168</td>
                <td> 192</td>
                <td> 38</td>
              </tr>
              <tr>
                <td> Netzmaske</td>
                <td> 255</td>
                <td> 255</td>
                <td> 0</td>
                <td> 0</td>
              </tr>
              <tr>
                <td> Struktur</td>
                <td> Netzanteil</td>
                <td> Netzanteil</td>
                <td> Hostanteil</td>
                <td> Hostanteil</td>
              </tr>
            </table>
            <p>
            <table border cellspacing=0 cellpadding=0 width="80%">
              <tr>
                <th colspan=5> Class C</th>
              </tr>
              <tr>
                <td> IP Adresse</td>
                <td bgcolor="#00BF00"> 192</td>
                <td bgcolor="#00BF00"> 168</td>
                <td bgcolor="#00BF00"> 192</td>
                <td> 38</td>
              </tr>
              <tr>
                <td> Netzmaske</td>
                <td> 255</td>
                <td> 255</td>
                <td> 255</td>
                <td> 0</td>
              </tr>
              <tr>
                <td> Struktur</td>
                <td> Netzanteil</td>
                <td> Netzanteil</td>
                <td> Netzanteil</td>
                <td> Hostanteil</td>
              </tr>
            </table>
            <p>Netzanteil und Hostanteil beschreiben einerseits also die <b>Netzklasse</b>
              und werden andererseits anhand der <b>Netzmaske</b> festgelegt.
              Dabei identifiziert der <b>Netzanteil</b> einer IP Adresse das Netz,
              der Hostanteil der Adresse hingegen dient zur Identifizierung des
              Rechners innerhalb dieses Netzes. Diese Struktur macht TCP/IP zu
              einem routingf&auml;higen Protokoll.
            <p>In jedem Netzwerk sind zwei Adressen <b>reserviert</b>: Ist der
              Hostanteil gleich Null handelt es sich um die <b>Adresse des Netzwerk</b>s.
              Sind alle Bits des Hostanteils auf Eins gesetzt ist es die <b>Broadcast-Adresse</b>
              des Netzwerks. Die logische AND-Verkn&uuml;pfung einer IP-Adresse
              mit der Netzmaske ergibt die Netzwerkadresse.
            <p>
            <pre><code>
Byte Schreibweise
IP-Adresse          10.1.1.1
Netmask             255.255.255.0

Bit Schreibweise
IP Adresse          00001010.00000001.00000001.00000001
Netmask             11111111.11111111.11111111.00000000

AND Verknüpfung     00001010.00000001.00000001.00000000
=&gt; Netz                10.       1.       1.       0
</code>

</pre>
            <p>Die Reservierung von Netzadresse und Broadcastadresse hat nichts
              mit den nach <b>RFC 1918</b> reservierten Adressbereichen zu tun:
            <p>
            <table border cellspacing=0 cellpadding=0 width="80%">
              <tr>
                <th colspan=2>Reservierte IP Adressen nach RFC 1918</th>
              </tr>
              <tr>
                <td> von </td>
                <td> bis </td>
              </tr>
              <tr>
                <td>10.0.0.0</td>
                <td>10.255.255.255</td>
              </tr>
              <tr>
                <td>172.16.0.0</td>
                <td>172.31.255.255</td>
              </tr>
              <tr>
                <td>192.168.0.0</td>
                <td>192.168.255.255</td>
              </tr>
            </table>
            <p>Diese Adressen sind f&uuml;r<b> private Netze</b> reserviert und
              werden generell nicht geroutet oder offiziell vergeben. Eine besondere
              reservierte Adresse ist auch die IP 127.0.0.1 - diese IP ist auf
              jedem System stets der localhost.
            <h4>Geteilte Netze und Bildung von Subnetzen</h4>
            <p>Netzwerke k&ouml;nnen bitweise <b>maskiert</b> werden, das hei&szlig;t,
              dass nicht alle Bits eines Abschnittes der Netzmaske auf den gleichen
              Wert gesetzt sind. Damit ist es m&ouml;glich<b> Subnetze</b> zu
              definieren. In einer Netzmaske 255.255.255.128 beispielsweise stehen
              nur die letzten sieben Bits zur Adressierung des Hosts zur Verf&uuml;gung,
              dadurch wird ein Class-C-Netz in zwei Subnetze mit jeweils 126 Hosts
              geteilt. Mit der Bildung von Subnetzen kann die Verwaltung vereinfacht
              werden.
            <p>Beispiel f&uuml;r ein geteiltes Netz:
            <p>
            <table border cellspacing=0 cellpadding=0 width="80%">
              <tr>
                <th colspan=3> Class-C-Netz 192.168.100.0</th>
              </tr>
              <tr>
                <th colspan=3> Netzmaske 255.255.255.128</th>
              </tr>
              <tr>
                <td>&nbsp; </td>
                <td> 1. H&auml;lfte</td>
                <td> 2. H&auml;lfte</td>
              </tr>
              <tr>
                <td> Netzadresse</td>
                <td> 192.168.100.0</td>
                <td> 192.168.100.128</td>
              </tr>
              <tr>
                <td> Broadcastadresse</td>
                <td> 192.168.100.127</td>
                <td> 192.168.100.255</td>
              </tr>
              <tr>
                <td> IP Range</td>
                <td> 192.168.100.1(126)</td>
                <td> 192.168.100.129(254)</td>
              </tr>
            </table>
            <p>Die Teilung von Netzen muss immer "<b>symmetrisch</b>" erfolgen,
              das hei&szlig;t, ein Class-C-Netz beispielsweise kann in zwei Subnetze
              geteilt werden, ein solches Netz wiederum in zwei Subnetze usw.
            <h4>Broadcasting und Adress Resolution Protocol</h4>
            <p> Wie weiter oben schon erl&auml;utert, ist die zweite reservierte
              Adresse in einem Netzwerk die <b>Broadcastadresse</b>. Eine an die
              Broadcastadresse gerichtete Nachricht (Broadcast) wird automatisch
              an jeden Host im entsprechenden Netzwerk weitergegeben. Durch dieses
              <b>ARP-Signal </b>(Adress Resolution Protocol) wird erreicht dass
              der Zielhost seine zur IP-Adresse geh&ouml;rige Hardware-Adresse
              (<b>MAC = Media Access Control</b>) bekanntgibt, somit k&ouml;nnen
              Datenpakete auf der Bit&uuml;bertragungsschicht (Physical Layer)
              zwischen den Maschinen ausgetauscht werden. Die Abbildung einer
              IP-Adresse auf die MAC-Adresse ist ebenfalls im ARP beschrieben.
            <p>Eine MAC-Adresse hat eine L&auml;nge von 6 Byte: Drei Byte f&uuml;r
              den Hersteller und drei Byte f&uuml;r eine fortlaufende Nummer.
              Jede MAC-Adresse ist weltweit eindeutig. In der Regel ist diese
              in der Hardware der Netzwerkkarte enthalten ("eingebrannt"), es
              gibt jedoch auch die M&ouml;glichkeit MAC-Adressen zu vergeben,
              sogenannte gemanagte MAC-Adressen zu verwenden.
              <br>
              Vielen dank an Herrn Rolf Rost von <a href="http://www.i-netlab.de" target="_blank">I-NetLab</a>,
              der uns den Artikel zur Verf&uuml;gung gestellt hat. Bei Fragen
              k&ouml;nnen Sie sich an ihn wenden. Auf seiner Webseite finden Sie
              ein Kontakt-Formular. <br>
              <br></p>


<p>Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/servertechnik/99-tcp-ip-protokoll-routing-nat-und-fehlersuche.html' rel='bookmark' title='Permanent Link: TCP/ IP Protokoll &#8211; Routing, Nat und Fehlersuche'>TCP/ IP Protokoll &#8211; Routing, Nat und Fehlersuche</a></li>
<li><a href='http://www.devmag.net/html-tricks/265-email-adressen-verschlsseln.html' rel='bookmark' title='Permanent Link: Email &#8211; Adressen verschl&uuml;sseln'>Email &#8211; Adressen verschl&uuml;sseln</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.devmag.net/servertechnik/98-tcp-ip-protokoll-ip-adressen-netzwerke-subnetze.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TCP/ IP Protokoll &#8211; Routing, Nat und Fehlersuche</title>
		<link>http://www.devmag.net/servertechnik/99-tcp-ip-protokoll-routing-nat-und-fehlersuche.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tcp-ip-protokoll-routing-nat-und-fehlersuche</link>
		<comments>http://www.devmag.net/servertechnik/99-tcp-ip-protokoll-routing-nat-und-fehlersuche.html#comments</comments>
		<pubDate>Fri, 06 Jun 2008 10:00:00 +0000</pubDate>
		<dc:creator>Thiemo</dc:creator>
				<category><![CDATA[Servertechnik]]></category>
		<category><![CDATA[TCP/IP]]></category>

		<guid isPermaLink="false">http://www.devmag.net/?p=99</guid>
		<description><![CDATA[Weiterf&#252;hrende Links:TCP/ IP Protokoll &#8211; IP Adressen, Netzwerke, Subnetze


Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/servertechnik/98-tcp-ip-protokoll-ip-adressen-netzwerke-subnetze.html' rel='bookmark' title='Permanent Link: TCP/ IP Protokoll &#8211; IP Adressen, Netzwerke, Subnetze'>TCP/ IP Protokoll &#8211; IP Adressen, Netzwerke, Subnetze</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.devmag.net/wp-content/uploads/illu_tcp_ip_2.gif" width="60" height="60" class="illu" align="right" alt="TCP-IP Routing, NAT" />
              Im zweiten Teil der Einf&uuml;hrung in das TCP/IP Protokoll werden
              das Routing, und die NAT Funktion erkl&auml;rt, und wie diese aktiv
              im Internet, aber auch in lokalen Netzen angewendet wird. Am Ende
              der Einf&uuml;hrung finden Sie noch n&uuml;tzliche Tools zur Fehlersuche
              in eigenen TCP/IP Netzwerken auf Windows basierend.<span id="more-99"></span>  <h4>Routing und Network Adress Translation</h4>
            <p>Wie bereits festgestellt wurde ist das TCP/IP Protokoll aufgrund
              seiner Struktur routingf&auml;hig. Zum Verbinden verschiedener Netze
              dienen <b>Gateways </b>oder kurz: Router. Auch ein Router besitzt
              eine IP-Adresse, Netzdesigner legen diese Adresse meistens an den
              Anfang oder ans Ende des IP-Ranges, z.B. <i>10.0.0.1</i> oder <i>10.0.0.254</i>
              im Netz 10.0.0.0. </p>
            <p>Das folgende Bild veranschaulicht das Routing: </p>
            <p><img src="http://www.devmag.net/wp-content/uploads/tcp_ip_router.gif" width="420" height="240" border="0" alt="Routing"> </p>
            <p>Ganz ohne Routing w&uuml;rde ein Datenpaket von Rechner <i>10.0.0.2</i>
              an Rechner <i>10.0.0.3</i> gelangen denn beide Maschinen befinden
              sich im gleichen Netz. Der Host <i>10.0.0.2</i> hat nun jedoch eine
              Nachricht f&uuml;r die Maschine <i>10.0.1.23</i>. Anhand des Netzanteils
              der IP-Adresse des Empf&auml;ngers schickt <i>10.0.0.2</i> die Nachricht
              nicht in das "eigene" Netz sondern gleich an seinen in der TCP/IP-Konfiguration
              eingetragenen <b>Standardgateway</b> (Router) weil sich der Empf&auml;nger
              in einem anderen Netz befindet. Der Router, welcher physikalisch<b>
              in beiden Netzen</b> anwesend ist erkennt vermittels Routingtabelle
              dass das Paket aus dem Netz 10.0.0.0 in das Netz 10.0.1.0 zu leiten
              ist und so gelangt das Paket von Maschine <i>10.0.0.2</i> zu Maschine
              <i>10.0.1.23</i>. </p>
            <p>Routingtabellen k&ouml;nnen statisch oder dynamisch sein. Neben
              der Netzadresse oder auch einzelner Hostadressen welche geroutet
              werden sollen beinhaltet eine Routingtable au&szlig;erdem eine sogenannte
              <b>Metrik</b>, damit ist festgelegt in welcher <b>Reihenfolge</b>
              Routen abgearbeitet werden falls es Mehrere gibt (meistens ist dabei
              die Preisfrage ausschlaggebend). </p>
            <p>NAT (<b>Network Adress Translation</b>) ist ein Protokoll welches
              das <b>Umsetzen von IP-Adresse</b>n von einem Netz in ein Anderes
              beschreibt und kommt ebenfalls auf Routern oder Firewalls zum Einsatz.
              Mit NAT kann z.B. eine Netzadresse <i>10.0.0.2</i> zu <i>192.168.0.2</i>,
              eine weitere IP <i>10.0.0.3</i> zu <i>192.168.0.3</i> usw. umgesetzt
              werden. M&ouml;glich ist es, auf diese Weise auch Ports linear zu
              &uuml;bersetzen. Eine Sonderform von NAT liegt vor, wenn die IP-Adressen
              aller Maschinen in einem Netz (z.B. <i>10.0.0.2</i> bis <i>10.0.0.253</i>)
              auf eine einzige IP-Adresse umgesetzt werden. Damit lassen sich
              die IP-Adressen einzelner oder mehrerer Netzwerke verbergen (Mascerading)
              und ein privates Netzwerk wird dadurch nach au&szlig;en hin durch
              eine einzige IP-Adresse presentiert.
            <p>NAT und Routing wird von LINUX Maschinen von "Haus aus" soweit
              unterst&uuml;tzt so dass hier nur die Frage der Konfiguration zu
              kl&auml;ren w&auml;re. Anders hingegen auf Windows-Rechnern, hier
              macht sich der Erwerb weiterer Software notwendig, soll ein PC als
              Router eingesetzt werden.
            <p>Der Einsatz einer solche Software wie WinRoute Pro z.B. macht sich
              erforderlich wenn
            <ul>
              <li>bestimmte Computer eine andere IP-Adresse aufweisen sollen als
                die Haupt-Adresse, die vom Rest des Netzwerks genutzt wird.
              <li>Sie Zweigniederlassungen mit dem WAN (Wide Area Network) mit
                privatem Adressplatz verbunden haben und sich alle einen Internetzugang
                teilen sollen.
              <li>sich Mehrfachsegmente im Hintergrund von WinRoute befinden,
                von denen ein oder mehrere Segmente DMZ(s) mit &ouml;ffentlichen
                IP-Adressen sind.
              <li>Sie innerhalb Ihres privaten Netzwerks &uuml;ber &ouml;ffentliche
                IP-Adressen verf&uuml;gen m&ouml;chten. (Denken Sie daran, mit
                Ihrem ISP abzusprechen, dass diese IP-Adressen an Ihre IP-Adresse
                geroutet werden.)
            </ul>
            <h4>TCP/IP im OSI Referenzmodell</h4>
            <p>
            <table border=1 celpadding=0 cellspacing=0 width="80%">
              <tr>
                <td>&nbsp;</td>
                <td>OSI-Modell</td>
                <td>Ebenen</td>
                <td>Protokolle</td>
              </tr>
              <tr>
                <td>7</td>
                <td>Anwenderschicht</td>
                <td>Application Layer</td>
                <td>Telnet, SMTP...</td>
              </tr>
              <tr>
                <td>6</td>
                <td>Darstellungsschicht</td>
                <td>Presentation Layer</td>
                <td>&nbsp;</td>
              </tr>
              <tr>
                <td>5</td>
                <td>Kommunikations-&nbsp; <br>
                  steuerungsschicht</td>
                <td>Session Layer</td>
                <td>&nbsp;</td>
              </tr>
              <tr>
                <td>4</td>
                <td>Transportschicht</td>
                <td>Transport Layer</td>
                <td>TCP/UDP</td>
              </tr>
              <tr>
                <td>3</td>
                <td>Vermittlungsschicht</td>
                <td>Network Layer</td>
                <td>IP/ICMP</td>
              </tr>
              <tr>
                <td>2</td>
                <td>Sicherungsschicht</td>
                <td>Data Link Layer</td>
                <td>ARP</td>
              </tr>
              <tr>
                <td>1</td>
                <td>Bit&uuml;bertragungsschicht</td>
                <td>Physical Layer</td>
                <td>Ethernet</td>
              </tr>
            </table>
            <p> F&uuml;r TCP/IP geschriebene Anwendungen benutzen meist mehrere
              Protokolle (Telnet, SMTP, http...). Die Summe der Schichten der
              Protokolle wird als<b> Protocol-Stack</b> bezeichnet. Die Kommunikation
              beginnt in der obersten Schicht des Protokoll-Stacks. Jede Schicht
              reicht die Informationen an untere Schichten weiter, bis sie schlie&szlig;lich
              vom physikalischen Netzwerk &uuml;bertragen werden. Beim Empf&auml;nger
              verl&auml;uft der Proze&szlig; umgekehrt von den unteren zu den
              oberen Schichten. Diese einfache Betrachtungsweise m&ouml;ge f&uuml;r
              diesen Artikel gen&uuml;gen.
            <h4>Tools zur Fehlersuche</h4>
            <p>Auch Betriebssysteme Windows9x, NT und W2000 stellen ein paar Tools
              bereit mit welchen sich Fehler im Netzwerk eingrenzen oder fehlerhafte
              Konfigurationen ermitteln lassen.
            <h5>winipcfg</h5>
            <p>Steht unter Windows9x zur Verf&uuml;gung und zeigt die lokale IP-Konfiguration
              &uuml;ber ein grafisches Dialogfenster an. Ebenfalls grafisch angezeigt
              wird die Hilfe wenn <i>winipcfg -?</i> auf der Kommandozeile eingegeben
              wurde. Mit den Schaltern <i>freigeben</i> und <i>aktualisieren</i>
              kann gepr&uuml;ft werden ob eine automatische IP-Konfiguration &uuml;ber
              DHCP funktioniert. </p>
            <h5>ipconfig</h5>
            <p>Funktionen wie <i>winipcfg</i> jedoch rein kommandozeilenorientiert.
              Steht unter Win95 nicht zur Verf&uuml;gung. Die Schalter weichen
              unter Win9x und NT geringf&uuml;gig voneinander ab, in WinNT z.B.
              steht <i>-a</i> f&uuml;r "all" unter Win9x muss <i>-all</i> notiert
              werden. Mit Letzerem werden auch die MAC-Adressen der Adapter angezeigt.
            </p>
            <h5>netstat</h5>
            <p>Zeigt Protokollstatistik und aktuelle TCP/IP-Netzwerkverbindungen
              an., <i>netstat</i> ohne Schalter zeigt aktive Verbindungen: </p>
            <pre>
Aktive Verbindungen

  Proto  Lokale Adresse    Remote-Adresse      Status
  TCP    rolf:ftp          VRONI:1025          ESTABLISHED
</pre>
            <p><i>netstat -r</i> zeigt den Inhalt der Routing-Tabelle an. Weitere
              M&ouml;glichkeiten werden wie gehabt mit dem Schalter <i>-?</i>
              angezeigt. </p>
            <h5>tracert</h5>
            <p>Ein m&auml;chtiges Tool um das Routing zu &uuml;berpr&uuml;fen,
              zum pr&uuml;fen also welchen "Weg" ein Datenpaket vom Ausgangsrechner
              zum Zielrechner nimmt. Dabei ist ein <i>hop</i> ein Ger&auml;t auf
              dem Pfad zwischen zwei Ger&auml;ten. </p>
            <h5>ping</h5>
            <p>Das wohl wichtigste Werkzeug in dieser "Sammlung". Mit <i>ping</i>
              kann gepr&uuml;ft werden ob ein Host &uuml;berhaupt erreichbar ist
              in TCP/IP-Netzwerken. <br>
              <br>
              <img src="http://www.devmag.net/wp-content/uploads/tcp_ip_ping.gif" width="433" height="207"> <br>
              <b>Ping in der MS-DOS Eingabeaufforderung. In die Eingabeaufforderung
              gelangen Sie &uuml;ber &quot;Start-&gt;Ausf&uuml;hren-&gt;command</b>&quot;<br>
              <br>
              <i>ping</i> verwendet ICMP (Internet Control Message Protocol).
              ICMP-Pakete enthalten ein <i>Type-Field</i> und ein <i>Code-Field</i>
              in welchem die Meldung spezifiziert ist: </p>
            <p>
            <table border cellspacing=0 cellpadding=0 width="80%">
              <tr>
                <td> Type</td>
                <td> Code</td>
              </tr>
              <tr>
                <td> 0</td>
                <td> echo reply</td>
              </tr>
              <tr>
                <td> 3</td>
                <td> destination unreachable</td>
              </tr>
              <tr>
                <td> 4</td>
                <td> source quench</td>
              </tr>
              <tr>
                <td> 5</td>
                <td> redirect</td>
              </tr>
              <tr>
                <td> 8</td>
                <td> echo request</td>
              </tr>
              <tr>
                <td> 11</td>
                <td> time exceeded</td>
              </tr>
              <tr>
                <td> 12</td>
                <td> parameter problem</td>
              </tr>
              <tr>
                <td> 13</td>
                <td> timestamp request</td>
              </tr>
              <tr>
                <td> 14</td>
                <td> timestamp reply</td>
              </tr>
              <tr>
                <td> 17</td>
                <td> address mask request</td>
              </tr>
              <tr>
                <td> 18</td>
                <td> address mask reply</td>
              </tr>
            </table>
            <h5>nslookup</h5>
            <p>Mit diesem Utility (nicht unter Win9x) kann gepr&uuml;ft werden
              ob die Aufl&ouml;sung von Namen im DNS funktioniert. <i>nslookup</i>
              ohne Schalter zeigt an welcher Nameserver im Default auf der lokalen
              Station verwendet wird. <i>nslookup</i> ist Scriptf&auml;hig, gut
              zu wissen wenn mit einem Kommando eine ganze Liste von Domains gepr&uuml;ft
              werden soll: <i>nslookup &lt; liste</i>. <i>nslookup</i> kann sowohl
              im Batchmode als auch interaktiv verwendet werden, eine umfangreiche
              Hilfe wird dabei mit dem <i>?</i> angezeigt. </p>
            <p>Vielen dank an Herrn Rolf Rost von <a href="http://www.i-netlab.de" target="_blank">I-NetLab</a>,
              der uns den Artikel zur Verf&uuml;gung gestellt hat. Bei Fragen
              k&ouml;nnen Sie sich an ihn wenden. Auf seiner Webseite finden Sie
              ein Kontakt-Formular. </p></p>


<p>Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/servertechnik/98-tcp-ip-protokoll-ip-adressen-netzwerke-subnetze.html' rel='bookmark' title='Permanent Link: TCP/ IP Protokoll &#8211; IP Adressen, Netzwerke, Subnetze'>TCP/ IP Protokoll &#8211; IP Adressen, Netzwerke, Subnetze</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.devmag.net/servertechnik/99-tcp-ip-protokoll-routing-nat-und-fehlersuche.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mod_rewrite &#8211; Mit oder ohne &#8220;www&#8221;</title>
		<link>http://www.devmag.net/servertechnik/108-mod_rewrite-mit-oder-ohne-www.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mod_rewrite-mit-oder-ohne-www</link>
		<comments>http://www.devmag.net/servertechnik/108-mod_rewrite-mit-oder-ohne-www.html#comments</comments>
		<pubDate>Wed, 05 Mar 2008 10:00:00 +0000</pubDate>
		<dc:creator>Thiemo</dc:creator>
				<category><![CDATA[Mod_rewrite]]></category>
		<category><![CDATA[Servertechnik]]></category>

		<guid isPermaLink="false">http://www.devmag.net/?p=108</guid>
		<description><![CDATA[Weiterf&#252;hrende Links:mod_rewrite &#8211; Was tun wenn sich die Dateiendung ändert? mod_rewrite und dynamische Websiten Genau einen Datensatz oder ein Datenfeld


Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/servertechnik/107-mod_rewrite-was-tun-wenn-sich-die-dateiendung-andert.html' rel='bookmark' title='Permanent Link: mod_rewrite &#8211; Was tun wenn sich die Dateiendung ändert?'>mod_rewrite &#8211; Was tun wenn sich die Dateiendung ändert?</a></li>
<li><a href='http://www.devmag.net/servertechnik/106-mod_rewrite-und-dynamische-websiten.html' rel='bookmark' title='Permanent Link: mod_rewrite und dynamische Websiten'>mod_rewrite und dynamische Websiten</a></li>
<li><a href='http://www.devmag.net/php-tricks/237-genau-einen-datensatz-oder-ein-datenfeld.html' rel='bookmark' title='Permanent Link: Genau einen Datensatz oder ein Datenfeld'>Genau einen Datensatz oder ein Datenfeld</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.devmag.net/wp-content/uploads/illu_mod_rewrite_3.gif" width="60" height="60" class="illu" align="left" alt="mod_rewrite - Mit oder ohne &quot;www&quot;" />
              Man kann eine URL mit oder ohne www schreiben. Mit dem mod_rewrite
              kann man das ganze auch andersherum gestalten - bei Anfragen mit
              dem www wird dieses einfach entfernt...<span id="more-108"></span>            <p>Es ist vielleicht nicht &quot;so&quot; n&uuml;tzlich, doch sieht
              es in der Adresszeile vielleicht besser aus, wenn das www nicht
              mit dabei steht. &Uuml;ber das mod_rewrite von Apache ist das m&ouml;glich.</p>
            <p><code>RewriteEngine On<br>
              RewriteCond %{HTTP_HOST} ^www\.seite\.de$ [NC]<br>
              RewriteRule ^(.*) http://seite.de/$1 [R]</code></p>
            <p>In der ersten Zeile wird die <b>RewriteEngine</b> von mod_rewrite
              <br>
              angeschaltet. <br>
              Die zweite Zeile definiert die <b>Rewrite-Bedingung</b>. Wenn der
              angeforderte Host, http://www.seite.de/ ist, dann wird die<b> RewriteRule
              </b>auf diese Anfrage angewendet. Das <b>[NC]</b> hinter dem Regul&auml;ren
              Ausdruck steht f&uuml;r <b>no case sensitivity</b>. Das bedeutet,
              das keine Unterscheidung zwischen Gro&szlig;-, und Kleinschreibung,gemacht
              wird.<br>
              <br>
              Die dritte Zeile definiert dann die Umleitung. <br>
              Wird die Seite direkt &uuml;ber http://www.seite.de/ aufgerufen,
              dann wird die Anfrage an http://seite.de/ umgeleitet. <br>
              Wichtig ist jetzt jedoch noch, das wenn die Seite &uuml;ber http://www.seite.de/dir/seite.htm
              aufgerufen wird, das das auch so behandelt wird, und entsprechend
              behandelt wird.<br>
              <b>(.*)</b> kann hierbei die Anfrage an den Server sein (das was
              hinter dem / <br>
              steht). <br>
              <br>
              Bei der Anfrage <b>http://www.seite.de/dir/seite.htm</b> w&auml;re
              der Inhalt dieses Platzhalters folglich <b>dir/seite.htm</b>. Dieser
              Platzhalter wird innerhalb der RewriteRule durch <b>$1</b> angsprochen.
              Die eigentliche Umleitung erfolgt mit <br>
              <code>http://seite.de/$1 [R]</code> <br>
              Das <b>[R]</b> steht f&uuml;r Redirect, also f&uuml;r &quot;Umleitung&quot;.
          </p></p>


<p>Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/servertechnik/107-mod_rewrite-was-tun-wenn-sich-die-dateiendung-andert.html' rel='bookmark' title='Permanent Link: mod_rewrite &#8211; Was tun wenn sich die Dateiendung ändert?'>mod_rewrite &#8211; Was tun wenn sich die Dateiendung ändert?</a></li>
<li><a href='http://www.devmag.net/servertechnik/106-mod_rewrite-und-dynamische-websiten.html' rel='bookmark' title='Permanent Link: mod_rewrite und dynamische Websiten'>mod_rewrite und dynamische Websiten</a></li>
<li><a href='http://www.devmag.net/php-tricks/237-genau-einen-datensatz-oder-ein-datenfeld.html' rel='bookmark' title='Permanent Link: Genau einen Datensatz oder ein Datenfeld'>Genau einen Datensatz oder ein Datenfeld</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.devmag.net/servertechnik/108-mod_rewrite-mit-oder-ohne-www.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Logfiles &#8211; Die Spuren eines Besuchers</title>
		<link>http://www.devmag.net/servertechnik/102-logfiles-die-spuren-eines-besuchers.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=logfiles-die-spuren-eines-besuchers</link>
		<comments>http://www.devmag.net/servertechnik/102-logfiles-die-spuren-eines-besuchers.html#comments</comments>
		<pubDate>Tue, 04 Mar 2008 10:00:00 +0000</pubDate>
		<dc:creator>Thiemo</dc:creator>
				<category><![CDATA[Servertechnik]]></category>

		<guid isPermaLink="false">http://www.devmag.net/?p=102</guid>
		<description><![CDATA[No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.devmag.net/wp-content/uploads/illu_statistik.gif" class="illu" width="60" height="60" align="right" alt="Logfiles - Die Spuren eines Besuchers " />Statistiken aus Logfiles? Wer Logfiles genau analysiert kommt schnell zu &uuml;beraschenden Ergebnissen &uuml;ber die eigenen Besucher, wo Sie herkommen, und was sie auf ihren Seiten finden wollen.<span id="more-102"></span><p>Jeder <b>Hit</b> wird aufgezeichnet, dabei werden nicht nur die
              IP des Besuchers gespeichert, nein sogar der verwendete Browser
              kann ermittelt werden.<br>
              Die Logfiles sind die Speicherpl&auml;tze f&uuml;r diese Daten.
              In ihnen wird jede Anfrage an den Server protokolliert und abgespeichert,
              wer auf diese Statistiken zugriff hat, kann sehr viel &uuml;ber
              die Entwicklung des Besucherstroms, und sogar die Zielgruppe ermitteln.</p>
            <p>Die Logfiles sind meistens im selben Verzeichnis wie der ROOT selbst
              ist. Sie sind einfache Textdateien und k&ouml;nnen mit jedem Editor
              ausgelesen werden.</p>
            <p>Jeder Aufruf an den Server wird protokolliert. Es kann so bestimmt
              werden, von wo der Besucher kam, welchen Browser er verwendet, und
              wie viele Seiten er angeschaut hat. Jeder Aufruf steht in der Logfile
              in einer eigenen Zeile. Eine Zeile k&ouml;nnte z.B. so aussehen:</p>
            <p><b>192.168.156.36 - [20/Jan/2002:19:35:09 +0100] &quot;GET / HTTP/1.1&quot;
              200 25641 www.devmag.net &quot;http://www.devmag.net/&quot; &quot;Mozilla/4.0
              (compatible; MSIE 5.5; Windows ME; DigExt)&quot;</b></p>
            <p>Diese Zeile beschreibt einen kompletten Aufruf der Seite. Auf der
              &quot;Code&quot; eher ungeordnet, doch besteht er aus einer festen
              Struktur. Der erste Teil ist die IP Adresse des Rechners, welcher
              den Aufruf get&auml;tigt hat. Die IP Adresse ist eine wandelnde
              Nummer. Bei jeder neuen Internetverbindung wird dem Computer vom
              jeweiligen Internetanbieter eine neue IP Adresse aus einem Pool
              gegeben. Diese IP Adresse ist innerhalb dieser Session einmalig.
              Diese einmalige Nummer erlaubt die Kommunikation zwischen den verschiedenen
              Rechnern.<br>
              Auf diese Angabe folgt ein Bindestrich. <br>
              Nach diesem werden n&auml;here Informationen zum Aufruf der Seite
              gemacht. Zun&auml;chst kommt das Datum und die Uhrzeit, es steht
              in []-Klammern. Es ist in dem amerikanischen Standard angegeben
              Tag/Monat/Jahr. Getrennt von einem Doppelpunkt kommt die genaue
              Angabe des Zeitpunkt des Aufrufs. Diese Angabe ist im GMT Zeitformat.
              <br>
              Bei dem Beispiel kommt der Besucher aus dem Raum, in dem die MEZ
              gilt, deshalb muss eine Stunde addiert werden, dies geschieht durch
              das +0100. Die konkrete Zeit des Aufrufs war also 20:35:09 Uhr.
              Zur Sommerzeit kann in unseren &quot;Gefilden&quot; Zeitverschiebung
              auch +0200, also zwei Stunden betragen.</p>
            <p>Die n&auml;chste Angabe spezifiziert den Aufruf. Die Methode GET
              legt fest, das die Daten vom Server an den Client gesendet wurden,
              nach dieser Angabe steht das Protokoll, mit welchem die Daten kodiert
              werden. Es ist hier das HTTP Protokoll. <br>
              Es kann sein das als Methode in den Logfiles auch ein HEAD auftaucht.
              Diese Methode wird vor allem von Suchmaschinen verwendet, die dadurch
              nur Daten zu der angeforderten Datei erhalten. Dies k&ouml;nnen
              das letzte &Auml;nderungsdatum des Dokumentes sein. Mit diesem Datum
              wird dann abgew&auml;gt, ob die Seite neu indexiert wird. <br>
              Nach der Angabe der Methode und des Protokolls folgt der R&uuml;ckgabecode
              des Servers. Ist der Seitenaufruf gegl&uuml;ckt, dann wird als R&uuml;ckgabecode
              200 zur&uuml;ckgegeben. </p>
            <p><b>Weitere R&uuml;ckgabecodes</b></p>
            <p><b>200 OK</b><br>
              Der Request wurde erfolgreich durchgef&uuml;hrt. <br>
              <br>
              <b>204 No Content</b><br>
              Das Dokument, welches angefordert wird enth&auml;lt keine Daten.
              <br>
              <br>
              <b> 206 Partial Content<br>
              </b>Die &Uuml;bertragung wurde unterbrochen. Dies kann vom Browser
              aus geschehen, oder bei einem Update der Seite. <br>
              <br>
              <b> 300 Multiple Choices <br>
              </b>Es gibt mehrere (&auml;hnliche) Dateien. Der Server kann die
              Datei nicht eindeutig ermitteln, und bietet mehrere Auswahlm&ouml;glichkeiten.<br>
              <br>
              <b> 301 Moved Permanently<br>
              </b>Die Datei wurde an einen anderen Ort verschoben. <br>
              <br>
              <b> 304 Not Modified<br>
              </b>Die Datei wird komplett aus dem Cache (Server und/oder Clientseitig)
              geladen.<br>
              <br>
              <b> 400 Bad Request<br>
              </b>Der Webserver &quot;versteht&quot; die Anfrage nicht. <br>
              <br>
              <b> 401 Unauthorized<br>
              </b>Sie sind nicht autorisiert, diesen Bereich zu betreten. <br>
              <br>
              <b> 403 Forbidden<br>
              </b>Der Zugriff auf die angeforderte Datei wird verweigert <br>
              <br>
              <b> 404 Not Found<br>
              </b>Die Datei wurde nicht gefunden (ist nicht vorhanden), oder der
              URL wurde falsch eingegeben.<br>
              <br>
              <b> 500 Internal Server Error<br>
              </b>Ein unbekannter Server Fehler ist aufgetreten. Oftmals entstehen
              diese durch falsche Anwendung von .htaccess - Dateien, oder durch
              Fehler im CGI.<br>
              <br>
              <b> 503 Service Unavailable<br>
              </b>Der Server kann die Anfrage zeitweilig nicht bearbeiten, z.B.
              bei Wartungsarbeiten.</p>
            <p>Nun aber zur&uuml;ck zu der Logfile-Analyse. </p>
            <p>Auf den R&uuml;ckgabecode folgt eine Zahl, sie gibt die genau &uuml;bertragene
              Datenmenge in Bytes an. Diese Zahl entspricht also der Dateigr&ouml;&szlig;e.
              Danach folgt der URL zu dem Dokument, welches aufgerufen wurde.
              Der URL wei&szlig;t auf den Root, es war also ein direkter Request.<br>
              Auf diesen URL folgt der URL der Seite, auf welcher sich der Besucher
              zuletzt befand. Bei einer direkten Anfrage entf&auml;llt diese Angabe.<br>
              Bei einer indirekten Anfrage kommt man z.B. &uuml;ber einen Link
              einer anderen Seite zu der Seite, hier steht dann der URL der Seite,
              von welcher man auf die andere Seite gekommen ist. Diese Seite bezeichnet
              man als Referer-Seite.</p>
            <p>Die folgenden Angabe geben n&auml;here Informationen zu dem Client,
              bzw. zu dem System von welchem der Aufruf get&auml;tigt worden ist.
              Diese Angaben erstrecken sich von dem verwendeten Browser bis zu
              dem Betriebssystem. In dem Beispiel verwendet der Besucher, leicht
              zu erkennen, den Internet Explorer in der Version 5.5. Zudem arbeitet
              er mit Windows ME als Betriebssystem.<br>
              Kommt der Request von einem Spider, oder von einem Robot, dann steht
              hier der Name des jeweiligen Spider oder Robots.</p>
            <p>Da jeder Hit nach diesem, oder &auml;hnlichen Muster aufgebaut
              ist, wird auch die Analyse fast zu einem Kinderspiel. Es gibt Programme
              bzw. Skripte, die jeden Hit auslesen, und in ihre Bestandteile auseinandernehmen,
              und dann in einer h&uuml;bschen, &uuml;bersichtlichen Statistik
              wieder zusammen setzten. Komplexere Statistiksysteme ermitteln zudem
              oftmals von dem Besucher &uuml;ber JavaScript weitere Daten, wie
              z.B. die Bildschirmaufl&ouml;sung oder &auml;hnlich. <br>
              Somit l&auml;sst sich leicht ermitteln, f&uuml;r welche Besuchergruppe
              eine Seite optimiert werden sollte.<br>
              Ein kostenloses Skript welches die Logfiles analysiert ist Webalizer.<br>
              </p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.devmag.net/servertechnik/102-logfiles-die-spuren-eines-besuchers.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Caching von Websiten</title>
		<link>http://www.devmag.net/servertechnik/100-caching-von-websiten.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=caching-von-websiten</link>
		<comments>http://www.devmag.net/servertechnik/100-caching-von-websiten.html#comments</comments>
		<pubDate>Sat, 16 Feb 2008 10:00:00 +0000</pubDate>
		<dc:creator>Thiemo</dc:creator>
				<category><![CDATA[Servertechnik]]></category>
		<category><![CDATA[Apache Webserver]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[Mod_rewrite]]></category>

		<guid isPermaLink="false">http://www.devmag.net/?p=100</guid>
		<description><![CDATA[Weiterf&#252;hrende Links:mod_rewrite und dynamische Websiten Apache Webserver unter Windows installieren


Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/servertechnik/106-mod_rewrite-und-dynamische-websiten.html' rel='bookmark' title='Permanent Link: mod_rewrite und dynamische Websiten'>mod_rewrite und dynamische Websiten</a></li>
<li><a href='http://www.devmag.net/servertechnik/101-apache-webserver-unter-windows-installieren.html' rel='bookmark' title='Permanent Link: Apache Webserver unter Windows installieren'>Apache Webserver unter Windows installieren</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.devmag.net/wp-content/uploads/illu_status_load.gif" class="illu" width="60" height="60" align="left" alt="Caching von Websiten ">Schnellere Ladezeiten durch das Caching von Webseiten &uuml;ber den Apache Webserver dank der Datei .htaccess!<span id="more-100"></span><p>Auch in diesem Bereich bietet der Apache Webserver seine Vorteile.
              Mit ihm kann man die Dauer des Zwischenspeicherns eines Dokumentes
              genau festlegen, was zu einem guten Zusammenspiel zwischen dem Besucher
              und den gespeicherten Daten f&uuml;hrt.<br>
              Bei dem Besuch eines Users auf einer Seite, sei es jetzt irgendein
              Artikel, wird dieser auf dem Computer des Besuchers zwischengespeichert.
              &Auml;hnlich wie bei einem Cookie ist auch hier ein Verfallsdatum
              festgelegt. Sollte der Besucher innerhalb dieses Zeitraums genau
              diese Seite nochmals besuchen, so wird diese aus dem Cache geladen,
              was die Ladezeit dann deutlich verk&uuml;rzt. <br>
              Ist dieser Zeitraum abgelaufen, m&uuml;ssen die Daten erneut angefordert
              werden.<br>
              Das besondere was der Apache Server hier noch bietet ist, das man
              einzelne MIME-Typen definieren kann.<br>
              Man kann also definieren, das alle Dateien von dem Typ image/gif
              erst nach <br>
              30-Tagen wieder angefordert m&uuml;ssen.<br>
              Dies ist nat&uuml;rlich ein deutlicher Vorteil.<br>
              <br>
              Es ist eine <b>.htaccess</b> Datei n&ouml;tig, die diese Festlegungen
              dem Server mitteilt.<br>
              Wichtig vorweg ist, das auf dem Server das Modul &quot;<b>mod_expires</b>&quot;
              installiert bzw. einkompiliert ist. Dies ist aber bei den meisten
              Servern der Fall.<br>
              <br>
              Es gibt haupts&auml;chlich drei Befehlsformen, die verwendet werden
              k&ouml;nnen. <br>
              Diese sind in einer .htaccess - Datei auf dem Server zu hinterlegen.<br>
              <br>
              Erste Form:<br>
              <br>
              <b><font color="#003399">ExpiresActive</font> <font color="#FF0000">On</font><br>
              <font color="#003399">ExpiresDefault &quot;</font><font color="#FF0000">access
              plus 5 days</font><font color="#003399">&quot; </font></b><br>
              <br>
              Die erste Zeile aktiviert die Cache-Kontrolle des Servers. Die folgende
              Zeile gibt einen <b>Default-Wert</b> an. Die Seite soll genau f&uuml;nf
              Tage lang nach dem Besuch im Cache bleiben. Dies gilt jetzt allgemein
              f&uuml;r alle Dokumente auf dem Server, oder in dem Verzeichnis.<br>
              Dies ist nat&uuml;rlich zu allgemein, da eine html-Seite wahrscheinlich
              &ouml;fters ver&auml;ndert wird als eine Grafikdatei.<br>
              Hier greift die Zweite Form:<br>
              <b><br>
              <font color="#003399">ExpiresByType</font> <font color="#FF0000">image/gif</font>
              <font color="#003399">A</font><font color="#FF0000">864000</font></b><br>
              <br>
              Wie sich vermuten l&auml;sst wird hier, wie oben schon angesprochen
              der einzelne Dateityp angesprochen. <br>
              <font color="#FF0000"><b>images/gif</b></font> steht hier f&uuml;r
              alle *.gif Dateien. Hinter dem MIME-Typ steht die Zeitangabe, nach
              wievielen Sekunden die Datei neu vom Server geladen werden soll.
              Das <b><font color="#003399">A </font></b>ist fest. Es steht f&uuml;r
              &quot;Anforderung&quot; (engl. access). In diesem Fall werden die
              gif-Dateien nach 10 Tagen wieder neu vom Server geladen.<br>
              <b><br>
              Weitere MIME-Typen<br>
              </b></p>
            <table width="80%" border="1" cellspacing="0" cellpadding="0">
              <tr>
                <td><font face="Arial, Helvetica, sans-serif" size="2">image/jpeg
                  </font></td>
                <td><font face="Arial, Helvetica, sans-serif" size="2"> *.jpg
                  Grafiken</font></td>
              </tr>
              <tr>
                <td><font face="Arial, Helvetica, sans-serif" size="2">image/png
                  </font></td>
                <td><font face="Arial, Helvetica, sans-serif" size="2">*.png Grafiken</font></td>
              </tr>
              <tr>
                <td><font face="Arial, Helvetica, sans-serif" size="2">text/css</font></td>
                <td><font face="Arial, Helvetica, sans-serif" size="2">*.css Dateien</font></td>
              </tr>
              <tr>
                <td><font face="Arial, Helvetica, sans-serif" size="2">text/html</font></td>
                <td><font face="Arial, Helvetica, sans-serif" size="2">*.html
                  Dateien</font></td>
              </tr>
              <tr>
                <td><font face="Arial, Helvetica, sans-serif" size="2">text/plain
                  </font></td>
                <td><font face="Arial, Helvetica, sans-serif" size="2">*.txt Dateien
                  (bzw. Flie&szlig;text)</font></td>
              </tr>
            </table>
            <p>Ein Problem welches hier immer noch vorhanden ist, ist, dass die
              Startseite mit gecacht wird, und somit ihre Aktualit&auml;t verliert.
              Hier muss eine Ausnahme f&uuml;r die Startseite gefunden werden.<br>
              Dies erreichen wir mit folgenden 4 Codezeilen:</p>
            <p><b><font color="#003399">&lt;Files index.htm&gt;<br>
              Header append Cache-Control &quot;<font color="#FF0000">public,
              must-revalidate</font>&quot;<br>
              &lt;/Files&gt;</font><br>
              <br>
              </b>Mit dieser Anweisung wird die Seite als &Ouml;ffentlich festgelegt,
              und durch den Zusatz <b>must-revalidate </b>wird regelrecht erzwungen,
              dass die Seite neu geladen werden muss.<br>
              Dies gilt Grunds&auml;tzlich f&uuml;r alle Dateien mit dem Dateinamen
              index.htm</p></p>


<p>Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/servertechnik/106-mod_rewrite-und-dynamische-websiten.html' rel='bookmark' title='Permanent Link: mod_rewrite und dynamische Websiten'>mod_rewrite und dynamische Websiten</a></li>
<li><a href='http://www.devmag.net/servertechnik/101-apache-webserver-unter-windows-installieren.html' rel='bookmark' title='Permanent Link: Apache Webserver unter Windows installieren'>Apache Webserver unter Windows installieren</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.devmag.net/servertechnik/100-caching-von-websiten.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache Webserver unter Windows installieren</title>
		<link>http://www.devmag.net/servertechnik/101-apache-webserver-unter-windows-installieren.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=apache-webserver-unter-windows-installieren</link>
		<comments>http://www.devmag.net/servertechnik/101-apache-webserver-unter-windows-installieren.html#comments</comments>
		<pubDate>Sat, 16 Feb 2008 10:00:00 +0000</pubDate>
		<dc:creator>Thiemo</dc:creator>
				<category><![CDATA[Servertechnik]]></category>
		<category><![CDATA[Apache Webserver]]></category>
		<category><![CDATA[htaccess]]></category>

		<guid isPermaLink="false">http://www.devmag.net/?p=101</guid>
		<description><![CDATA[Weiterf&#252;hrende Links:PHP Code in HTML Dateien ausführen Caching von Websiten


Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/php-tricks/238-php-code-in-html-dateien-ausfuhren.html' rel='bookmark' title='Permanent Link: PHP Code in HTML Dateien ausführen'>PHP Code in HTML Dateien ausführen</a></li>
<li><a href='http://www.devmag.net/servertechnik/100-caching-von-websiten.html' rel='bookmark' title='Permanent Link: Caching von Websiten'>Caching von Websiten</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.devmag.net/wp-content/uploads/illu_apache.gif" class="illu" width="60" height="60" align="right" alt="Apache Webserver unter Windows installieren ">Die Website auch Zuhause anschauen, wie Sie im Web aussieht, oder eigene Skripte Offline testen? Dann sollte man zumindest den Apache Webserver mit PHP und MySQL installiert haben. Wie man das unter Windows macht erfahren Sie hier.<span id="more-101"></span>  <p>Als Serversoftware w&auml;hlen wir den Apache Webserver, da er
              mittlerweile die bekannteste Serversoftware ist.<br>
              Wir beziehen die gesamte Anleitung auf Windows, weil dieses auf
              den meisten Heimcomputern installiert ist.</p>
            <p>1. Schritt: Die ben&ouml;tigte Software downloaden</p>
            <p>a) Apache WWW Server</p>
            <p>Den Apache WWW Server kann man als 3,3 MB gro&szlig;es ZIP Archiv
              herunterladen unter<br>
              <a href="http://www.apache.org" target="_blank">http://www.apache.org</a>
              <br>
              Dort sollten Sie die aktuellste Windows Version ausw&auml;hlen.</p>
            <p>b) MySQL Datenbank Server</p>
            <p>Von MySQL gibt es verschiedenste Versionen f&uuml;r verschiedenste
              Plattformen uns Systeme.<br>
              Die Website von MySQL ist nicht sehr &uuml;bersichlich, deshalb
              ist es sehr schwierig die passende Version zu finden.<br>
              Die Version, die auf jeden Fall funktioniert (also f&uuml;r Windows
              ist) ist:</p>
            <p>mysql-3.23.27-beta-win.zip</p>
            <p>Sie hat ca. 6 MB. <br>
              Zum Download gehen Sie auf <a href="http://www.mysql.org" target="_blank">http://www.mysql.org
              </a></p>
            <p>c) PHP 4<br>
              Das PHP Modul f&uuml;r Apache kann man unter <a href="http://www.php.net/downloads.php" target="_blank">http://www.php.net/downloads.php</a>
              herunterladen. W&auml;hlen Sie unter Win32 Binaries die Version
              4.0.3pl1 (oder neuer), und laden Sie sie runter.</p>
            <p>d) phpMyAdmin</p>
            <p>PhpMyAdmin ist ein Administrationstool f&uuml;r MySQL, mit ihm
              k&ouml;nnen Sie auf Datenbanken direkt &uuml;ber den Webbrowser
              zugreifen.<br>
              Es kann unter <a href="http://www.phpwizard.com/projects/phpMyAdmin/" target="_blank">http://www.phpwizard.com/projects/phpMyAdmin/
              </a>downgeloadet werden. Sie sollten die Version mit &quot;.php&quot;-Endungen
              w&auml;hlen (anstatt von &quot;.php3&quot;) da Sie ja PHP4 installieren.</p>
            <p>2. Schritt: Installation und Konfiguration der Komponenten</p>
            <p>a) Apache Webserver<br>
              Der Apache Webserver wird als installierbares Paket downgeloadet.
              Starten Sie die Installation wie bei jedem anderen Programm, lassen
              Sie den Installationspfad am besten so wie er ist.<br>
              &Ouml;ffnen Sie jetzt im Apache Verzeichnis /conf die Datei httpd.conf
              mit einem Texteditor. <br>
              Dort finden Sie eine Stelle wo steht:<br>
              #ServerName news.host.name</p>
            <p>&Auml;ndern Sie diese Zeile in folgende um:<br>
              ServerName localhost</p>
            <p>Bemerkung: Bei dem Servername 'localhost' handelt es sich um einen
              Namen der von Windows 'aktzeptiert' wird. Der Servername 'localhost'
              ist auf jedem System der Name des Rechners.<br>
              Speichern Sie jetzt die httpd.conf und schlie&szlig;en Sie sie.</p>
            <p>Starten Sie jetzt im Apache Verzeichnis die Anwendung apache.exe,
              und lassen Sie sie laufen.<br>
              Starten Sie jetzt den Browser und geben Sie als URL http://localhost/
              ein.<br>
              Wenn alles richtig gemacht worden ist, dann sollten sie jetzt eine
              Seite sehen, auf der steht, das der Apache Webserver erfolgreich
              installiert wurde.<br>
              Doch das alleine n&uuml;tzt uns noch wenig,<br>
              jetzt gehts weiter mit PHP und MySQL.</p>
            <p><br>
              b) Datenbanksoftware MySQL<br>
              Wenn Sie die richtige Version downgeloadet haben, ist auch diese
              Installation einfach.<br>
              Zun&auml;chst installieren Sie MySQL in den angegebenen Pfad (C:\mysql),
              dann starten Sie im MySQL-Ordner bin das Programm winmysqladmin.exe,
              geben Sie dort einen Usernamen und ein Passwort ein (merken, wichtig
              f&uuml;r Datenbankaktionen) und lassen es laufen. Von nun an wird
              dieses Programm auch in Autostart bei jedem Hochfahren gestartet.
              Falls dies unerw&uuml;nscht ist, l&ouml;schen Sie den Eintrag aus
              &quot;Autostart&quot;.</p>
            <p>c) PHP<br>
              PHP kann auf zwei Arten installieren. Als Modul und als CGI-Sprache.<br>
              Wir wollen PHP als Modul von Apache installieren, da die andere
              Art sich auf das cgi-bin beschr&auml;nkt.<br>
              Nun, entpacken Sie jetzt das PHP Paket, und installieren Sie es
              in das Vorgegebene Verzeichnis.<br>
              Nun, jetzt ist PHP4 aber noch nicht ganz installiert, sie m&uuml;ssen
              dem Server jetzt ja noch darauf hinweisen, wo php jetzt ist.<br>
              &Ouml;ffnen Sie dazu wieder die httpd.conf-Datei, und f&uuml;gen
              Sie zun&auml;chst folgende Zeilen hinzu:</p>
            <p>ScriptAlias /php/ &quot;c:/php/&quot; </p>
            <p>Dann m&uuml;sstest du folgenden Abschnitt sehen, mach die #-Zeichen
              am Anfang weg, so das das ganze dann aussieht wie hier unten.</p>
            <p># And for PHP 4.x, use:<br>
              AddType application/x-httpd-php .php<br>
              AddType application/x-httpd-php-source .phps<br>
              Action application/x-httpd-php /php/php.exe</p>
            <p>Speichern Sie jetzt die httpd.conf und schlie&szlig;en Sie sie.</p>
            <p>d) phpMyAdmin</p>
            <p>PHPMyAdmin ist ein Tool, das auf jedem Webserver mit PHP und MySQL
              installiert sein sollte. Mit ihm k&ouml;nnen Sie sehr leicht auf
              Datenbanken zugreifen, welche erstellen und &auml;ndern, und das
              alles &uuml;ber den eigenen Browser.<br>
              Entpacken Sie das Paket in das Apache /htdocs-Verzeichnis, dort
              werden auch in Zukunft alle Websiten und PHP-Programme gespeichert.<br>
              Nach dem Entpacken finden Sie dort eine Datei Names confic.inc.php,
              &ouml;ffnen Sie diese, und editieren Sie die gew&uuml;nschten Variablen.
              Sie ben&ouml;tigen auf jeden Fall ihren MySQL-Usernamen und das
              Passwort. Nach dem editieren speichern Sie das ganze, und gehen
              Sie mit dem Browser auf folgende URL:<br>
              http://localhost/phpMyAdmin/index.php<br>
              Sollten Sie jetzt etwas buntes sehen, dann waren ihre Bem&uuml;hungen
              erfolgreich.</p>
            <p>&Uuml;berpr&uuml;fung ob PHP auch l&auml;uft!<br>
              Alle Dateien, die in dem Ordner &quot;htdocs&quot; im Apache Programmordner
              liegen und auf &quot;.php&quot; enden werden vom Apache Server nun
              als PHP Skripte interpretiert.</p>
            <p>Um dies zu testen, erstellen sie eine Datei phpinfo.php mit folgendem
              Code:</p>
            <p><span style="background-color:yellow"><b>&lt;?php</b></span></p>
            <p><b><font color="#003399">phpinfo()</font></b></p>
            <p><b><span style="background-color:yellow">?&gt;</span></b></p>
            <p>Ruft man nun unter http://localhost/phpinfo.php das Skript auf
              sollten Sie einige Informationen von PHP finden.</p>
            <p>Das wars, die Installation ist nun fertig!</p>
          </p>


<p>Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/php-tricks/238-php-code-in-html-dateien-ausfuhren.html' rel='bookmark' title='Permanent Link: PHP Code in HTML Dateien ausführen'>PHP Code in HTML Dateien ausführen</a></li>
<li><a href='http://www.devmag.net/servertechnik/100-caching-von-websiten.html' rel='bookmark' title='Permanent Link: Caching von Websiten'>Caching von Websiten</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.devmag.net/servertechnik/101-apache-webserver-unter-windows-installieren.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

