Verständissfrage - Apache Server und Internet Web Server

Garack

Captain
Registriert
Mai 2006
Beiträge
3.614
Hallo ich habe eine grundsätzliche Frage:

Wie funktioniert eine Webseite :) ?

Genauer: Ich dachte bisher der Client sendet über HTTP(s) eine Anfrage über die IP/DNS. Der Server antwortet und die Verbindung steht.

Nun rufe ich ja einen Webseite auf, d.h. Der Server sucht eine Index.htm und sendet sie mir. Ich führe diese lokal auf meinem Rechner aus und sehe die Seite.

Das ist falsch ,oder? Denn ein Apache(oder anderer) Webserver führt diese Datei aus...Oder?

Was genau führe ich als Client aus? Javascript doch schon..Php? Die Bilder Jpegs, Gifs usw. liegen ja auf meinem REchner und werden local ausgeführt.

Also was genau führt ein Webserver aus an Befehlen, Sprachen,Scripten und was der Client?
 
Der Webserver führt Serverseitigen Code aus (deswegen heist er so ;-), also Beispielsweise PHP, Java, ASP.NET, Perl, Ruby, Pythopn usw. Diese erzeugen Inhalte für den Client (Text, Bilder usw.) die dann über das Netz übertragen werden.

Es kann aber auch sein das bei einer Anfrage gar kein Code ausgeführt wird sondern einfach nur eine Datei gelesen und an den Client gegeben wird (Statisches HTML, Bilder, Downloads). Das regelt der Webserver alleine.



Am Client wird in erster Linie nichts "ausgeführt" sondern dargestellt: Bilder (GIF, JPEG, PNG), HTML (+CSS für die Gestaltung), Text.

Ausgeführt wird JavaScript, Flash, Java-Aplets usw. die meistens in HTML eingebettet sind.
 
Ein Webserver führt erst mal gar nichts aus. Es liefert einfach nur aus. Ein reines HTML Dokument wird Dir einfach ausgeliefert und der Browser stellt es da, er rendert es.

Wenn jetzt zu HTML andere Webtechniken dazu kommen, dann liegt es eben an der Technik, wer was macht. Das eine wird vom Webserver über nommen (PHP, Phyton, ASP usw, usw) und das andere eben vom Browser (Javascript, Flash, usw, usw.)
 
Super, danke das hilft mir weiter. War eine Verständissblockade:)
 
BlubbsDE schrieb:
Das eine wird vom Webserver über nommen (PHP, Phyton, ASP usw, usw)
Oder, um das Ganze noch etwas spezieller zu machen: Um möglichst effizient zu arbeiten berechnet nicht der Webserver selbst diese Sachen, sondern er schiebt den schwarzen Peter einem anderen Dienst zu, der sich darauf besser versteht. Dadurch kann er sich auf sein Fachgebiet konzentrieren: Verbindungen verwalten und vorgekaute statische Inhalte rauspumpen.

Um das mal an dem allseits beliebten Beispiel Apache + PHP zu verdeutlichen.
Apache KÖNNTE über das Modul "mod_php" tatsächlich selbst PHP-Code auswerten. Nur muss für jede eingehende Verbindung ein neuer Apache-Prozess gestartet werden. Wenn das PHP-Modul jetzt tatsächlich integriert wird, dann frisst dieser neue Apache-Prozess richtig viel RAM. Vor allem wird das dämliche Modul mitgestartet, selbst wenn eigentlich nicht-php - Kram angefragt wird, z.B. n Bild.
Daher kann man Apache auch etwas Hirnschmalz beibringen und das Modul weglassen. Je nachdem, ob er jetzt PHP-Code vor sich hat oder nicht entscheidet er anders: ist es statischer Inhalt wie n Bild, dann liefert er das direkt aus. Ist es hingegen PHP, dann ruft Apache einen externen Prozess auf, der sich auf seine Weise um den PHP-Code kümmert. Im Idealfall ist das ein Dienst namens PHP-FPM. Der kann viel effizienter mit PHP-Code umgehen und auch hinsichtlich der Speicherverwaltung ist er viel effizienter.
 
Zurück
Oben