Sven Rautenberg: HTTP: wie muss ein GET über fsockopen aussehen?

Beitrag lesen

Moin!

Die Feature-Liste sieht besser aus, als alles, was man "mal eben schnell" hinskripten könnte: "Supports GET/POST/HEAD/TRACE/PUT/DELETE, Basic authentication, Proxy, Proxy Authentication, SSL, file uploads etc."

Fein. Wenn ich aber nur einen ganz einfachen GET-Request absetzen möchte und keinen Bock auf das lesen einer Dokumentation oder gar des Quellcodes habe?

Dann kopierst du dir das allererste simple Beispiel aus der Doku (erstes Kapitel, erste Seite) in dein Skript:

  
<?php  
require_once "HTTP/Request.php";  
  
$req =& new HTTP_Request("http://www.yahoo.com/");  
if (!PEAR::isError($req->sendRequest())) {  
    echo $req->getResponseBody();  
}  
?>  

Und warum das Rad zweimal erfinden?

Um den Mechanismus zu verstehen? Es gibt Millionen von Gästebüchern,
warum gibt es nicht das ultimative Gästebuch?

Wenn du dir eine HTTP-Klasse oder -Funktion schreibst, mußt du, damit das ordentlich und vernünftig wird, ja aber auch die einschlägigen RFC lesen und verstehen. Das mag auf den ersten Blick vielleicht noch recht simpel aussehen, aber sobald die Dinge komplizierter werden (und das können sie einfach dadurch, dass z.B. HTTP/1.1 ins Spiel kommt), wird das wahrscheinlich kein sonderlich großer Spaß mehr werden.

Und wenn man alles selbst macht, hat man den Vorteil, den Code sehr gut zu kennen und bei ev. später auftretenden Fehlern diese wahrscheinlich einfacher beheben kann als in einer fremden Software.

Der Einwand ist natürlich im Grundsatz richtig, allerdings setzt eine Fehlersuche und -behebung bei HTTP-Requests natürlich das Wissen über HTTP in Theorie und Praxis voraus.

Ich kenne mich beispielsweise ja auch mit SMTP aus. Trotzdem benutze ich zum Mailen in meinem Webshop keine eigene Konstruktion, sondern PEARs Net_SMTP zum Absetzen der jeweiligen SMTP-Befehle, weil mir da z.B. ein Standard-Interface zu den SMTP-Statusmeldungen geboten wird und es tatsächlich schneller und einfacher ist, existierenden Code (mit Dokumentation) einzubinden, als sich dieselben Funktionen erst mal selbst auszudenken.

- Sven Rautenberg