Hallo,
Das Script Archive von Matt Wright hat hier im Forum uebrigens einen sehr schlechten Ruf [...]
Das wusste ich nicht -- wahrscheinlich, weil dies ja eigentlich nicht mein Fachgebiet ist. Ich danke dir für diesen wertvollen Hinweis. Aber welches Archiv könntest du denn empfehlen?
Bei Perl kenne ich mich nicht aus.
Und auch in PHP, das ich hauptsaechlich verwende,
habe ich eigentlich alle Skripten selbst geschrieben.
Als Vorlage dienten mir die Beispiele in der dclp-FAQ
sowie im Manual. Dort gehe ich davon aus, dass sie
auf dem neuesten Stand sind, weil sie direkt aus der
Feder der Entwickler stammen (Manual) bzw. das Werk
einer aktiven Community sind (dclp-FAQ).
Einigermassen trauen wuerde ich noch Skript-Archiven, bei denen
Benutzerkommentare und -Bewertungen moeglich sind.
Wenn ein dort veroeffentlichtest Skript Sicherheitsloecher aufweist,
wird das vermutlich in den Benutzerkommentaren kritisiert.
Google bindet aber die Ressource nicht ein.
Er schickt nur einen HTTP-302-Header.
Aha. Das sagt mir zwar nicht viel, aber es war ohnehin nur ein Schuss ins Blaue.
Auf HTTP-Ebene laeuft das ganze - etwas vereinfacht - so ab:
1. Eine normale Google-Suche:
http://www.google.ch/search?q=telepolis
Der Browser sagt zum Server www.google.ch
GET /search?q=telepolis HTTP/1.1
("Hey, Alter, schick mir mal /search?q=telepolis !")
User-Agent: Mozilla/5.0
("Ich bin Mozilla/5.0")
Google schickt dem Browser zuerst einen HTTP-Head
200 OK ("Alles in Ordnung!")
Content-type: text/html ("Das was jetzt dann gleich kommt, ist HTML-Text")
Dann zwei Leerzeilen.
Dann den eigentlichen Inhalt, also die HTML-Seite
mit der Auflistung der Suchresultate:
<html><head><title>Google Suche: telepolis</title> u.s.w.
In der Adresszeile des Browsers steht "http://www.google.ch/search?q=telepolis"
2. Eine "Auf Gut Glueck!" Suche:
http://www.google.ch/search?q=telepolis&btnI=AufGutGlueck
Der Browser sagt zum Server www.google.ch
GET /search?q=telepolis&btnI=AufGutGlueck HTTP/1.1
("Hey, alter, schick mir mal /search?q=telepolis&btnI=AufGutGlueck !")
Google schickt dem Browser einen anderen HTTP-Head als vorhin:
302 Found (etwa "Ich habe etwas gefunden, aber das ist voruebergehend woanders")
Location: http://www.heise.de/tp/ ("Geh zu dieser URL - da findest Du es")
Content-Type: text/html ("Das was jetzt dann gleich kommt, ist HTML-Text")
Dann zwei Leerzeilen.
Dann ein paar wenige Zeilen HTML-Code, meist etwas im Stil:
<html>
<title>Document moved</title>
<body>
The Document you requested can be found
<a href="http://www.heise.de/tp/">here</a>
Der kurze HTML-Text mit dem Link ist in der HTTP/1.1 Spec.
empfohlen und ist vor allem fuer Browser gedacht, die
keine automatischen Weiterleitungen ausfuehren, sei es,
weil sie zu alt dafuer sind (sehr unwahrscheinlich) bzw.
dass der Benutzer sie so konfiguriert hat (z.B. bei Opera
ohne weiteres moeglich).
Normalerweise holt der Browser aufgrund des 302-Heads
automatisch die neue URL.
Er wendet sich also an www.heise.de
und sagt diesem Server:
GET /tp/ HTTP/1.1 ("Schick mir /tp/ !")
Der heise-Server antwortet dann wie folgt:
200 OK ("Alles in Ordnung!")
Content-type: text/html ("Das was jetzt dann gleich kommt, ist HTML-Text")
Dann zwei Leerzeilen.
Dann den eigentlichen Inhalt, also die HTML-Seite von Telepolis:
<html>
<head><title>TELEPOLIS</title>
u.s.w.
In der Adresszeile des Browsers steht "http://www.heise.de/tp/".
---
Wie die Status Codes offiziell definiert sind, steht in RFC 2616:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
Und natuerlich, auf deutsch und zusammengefasst, auch hier:
http://selfhtml.teamone.de/diverses/httpstatuscodes.htm
Zwei nette Tools, um die HTTP-Header im Browser zu sehen, sind:
http://cgi.w3.org/cgi-bin/headers
http://www.schroepl.net/cgi-bin/http_trace.pl
Das Schroepl-Skript zeigt leider bei 302-Weiterleitungen
direkt das Ergebnis des Umleitungs-Ziels an, also nicht
den 302-Header, sondern direkt den 200-Header der
endgueltigen Seite.
Fuer Google ist der W3-Header-Dienst leider nicht
zu gebrauchen, weil er ehrlicherweise einen "falschen"
UserAgent-String schickt (anstatt vorzuspielen, er sei
ein gewoehnlicher Browser) und Google sich dagegen
mit einer Antwort "403 Forbidden" wehrt, weil Google
nicht will, dass seine Resultate von Maschinen
verwertet werden.
mfg, Thomas