title image


Smiley Das ist der Unterschied zwischen ASP und CGI (viel Text)
Hallo,



>> Ich möchte jetzt nicht zu weit ausholen

> Mich würds aber doch interessieren.



Dann muß ich tatsächlich etwas weiter ausholen.



> Aber ASP ist somit - wie CGI - keine Programmiersprache.



Richtig - das sind aber dann schon alle Gemeinsamkeiten. ASP ist eine Technologie die Objekte, Metoden und Eigenschaften zur Verfügung stellt um Webinhalte dynamisch zu manipulieren. Dabei unterscheidet man folgende 6 Objekte:



Application

Server

Session

Response

Request

Error



Diese Objekte verfügen über eine Vielzahl von Methoden und noch mehr Eigenschaften. Alle Aufzuzählen würde bei Weitem das Forum hier sprengen. Im Gegensatz zu anderen Servertechnologien (z.B. PHP) bietet ASP eine grundsätzliche Unabhängigkeit von der verwendeten Programmiersprache an. D.h. Objekte, Methoden und Eigenschaften können im Prinzip von einer Vielzahl von Programmiersprachen angesprochen werden - solange diese interpretiert werden können. Durchgesetzt haben sich VBScript, JScript und vereinzelt VB.



ASP wird - wie verwandte Technologien - über eine API direkt in den Webserver integriert. Je nachdem um welchen Webserver es sich handelt, hat diese API immer einen anderen Namen:



IIS --> ISAPI

Netscape --> NSAPI

Apache --> mod



Die Implementierung dieser Api's und die Architektur ist aber immer die Gleiche:





Betriebssystem (Linux, Windows)



Webserver (Apache, IIS, Netscape ...)



[x]API (ASP, PHP, JSP, Perl, ...)









Dadurch, daß die API in den Webserver implentiert ist, werden Objekte deutlich schneller geladen und bleiben resisdent im Arbeitsspeicher des Betriebssystems/Servers. Folgendes abstraktes Beispiel:



Du sitzt zu Hause(=Betriebssystem) in Deinem Arbeitszimmer (=Webserver) und erhälst einen Anruf. Du wirst aufgefordert dem Anrufer bestimmte, ausgewählte Passagen aus einem Buch vorzulesen (dynamisch). Um dies ohne Fehler machen zu können, öffnest Du Deine Schreibtischschublade (=API), holst ein Lineal (=Objekt) raus und markierst mit einem Textmarker (=Methode) die vorzulesenden Passagen rot (=Eigenschaft). Nachdem Du das Gespräch beendet hast, legst Du das Lineal bei Seite und arbeitest weiter. 5 Minuten später erhälst Du nochmals einen Anruf und sollst aus einem anderen Buch Passagen vorlesen. Da Du das Lineal (=Objekt) bereits neben Dir liegen hast, kannst Du deutlich schneller auf dieses zugreifen und die gewünschten Inhalte schneller vorlesen. Du bist aber in der Lage, meherere gleichzeitige Anrufe zu bedienen, da das Lineal (=Obejekt) auf magische Art und Weise immer wieder vermehrt werden kann, ohne es jedes Mal neu aus der Schreibtischschublade (=API) zu holen.





Anders CGI:



CGI stellt weder Objekte, Methoden oder Eigenschaften zu Verfügung, sondern ist lediglich ein physischer Tunnel zwischen Webserver und einer Programmiersprache (meißt PHP oder Perl). CGI definiert lediglich die Art und Weise, wie Webserver und Servertechnologie miteinander kommunizieren, da diese Technologie eben nicht Bestandteil des Webservers ist. Auch die entsprechenden Objekte, Methoden und Eigenschaften sind ausgelagert. Jede Objektanfrage startet einen neuen isolierten, externen Prozeß.





Die Implementierung und Architektur sieht bei CGI wie folgt aus:





Betriebssystem (Linux, Windows)



Webserver (Apache, IIS, Netscape ...)





CGI





PHP Perl







Auch hierzu ein abstraktes Beispiel:



Du sitzt zu Hause(=Betriebssystem) in Deinem Arbeitszimmer (=Webserver) und erhälst einen Anruf. Du wirst wieder aufgefordert dem Anrufer bestimmte, ausgewählte Passagen aus einem Buch vorzulesen (dynamisch). Um dies ohne Fehler machen zu können, kannst Du diesmal nicht Deine Schreibtischschublade (=API) öffnen, sondern Du mußt das Lineal (=Objekt) aus dem Keller holen. Also rennst Du durch den Flur die Treppe runter (=CGI), holst im Keller das Lineal, rennst zurück in Dein Arbeitszimmer und kannst dann erst die Passagen mit einem Textmarker (=Methode) rot untersreichen (=Eigenschaft). Nach Beendigung des Gesprächs, löst sich Dein Lineal in Luft auf. Beim nächsten Anruf, benötigst Du wieder das Lineal. Leider ist es nicht mehr als Objekt vorhanden und Du muß wieder durch den Flur die Treppe (=CGI) in den Keller laufen und es abermals holen. Das wiederholt sich mit jedem Anruf. Selbst wenn Du zwei gleichzeitige Anrufe erhälst, die ein und dasselbe Objekt (=Lineal) benötigen, mußt Du immer wieder in den Keller laufen um ein neues Objekt zu holen.



Ich will Dir aber auch nicht einen Vorteil von CGI verheimlichen. Da bei jeder Anfrage ein neuer, isolierter Prozeß gestartet wird, sind die Sicherheitsaspekte von Programmen die unter CGI ausgeführt werden erst einmal höher. Ein Prozeß kann nicht in den anderen Prozeß reinschielen. Oder anders ausgedrückt: Ein Benutzer kann dem anderen Benutzer keinen Schaden zufügen.



Aber auch hier gibt es unter den API's Mechanismen die das verhindern.



> Dann wäre ASP aber GROB gesagt doch das Gleiche (oder zumindest sehr ähnlich) wie CGI.



Vielleicht konnte ich Dich ein wenig vom Gegenteil überzeugen.



cu

uDas .-)





































geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: