Hallo,
habe folgende aufgabenstellung:
-Absolute URLs müssen angenommen werden.
http 1.1 Server müssen auch URLs mit absoluten Pfaden annehmen
und verarbeiten.
Beispiel: GET http://www.somehost.com/path/file.html HTTP/1.2
Ich habe es zwar umgesetzt aber ich verstehe den Sinn nicht.
Bei http 1.1 wird doch nie eine solche Anfrage gesendet?! Es
wird der Host gesendet und die relative URL…was könnte der
Sinn der Aufgabe sein bzw wann sendet ein Browser eine solche
absolute URL?
Wo hast di die Spezifikation her? Wenn man RFC 2616 liest, dann kommt das nur implizit raus, in Abschnitt 9.3 heißt es „The GET method means retrieve whatever information is identified by the Request-URI“, man könnte also sagen, dass diese Anforderung alleine daher kommt, dass gültige URIs geschluckt werden müssen. Ansonsten sehe ich keinen Sinn darin, das zu unterstützen. Für alle anderen Mechanismen, die in der Anfrage verkapselt sein können (virtuelle Hosts und Authentisierung) gibt es andere Felder.
Die Verarbeitung selber ist, wenn man mal am Parser vorbei ist, einfach: man nimmt das Protokoll und verwirft es (ist ja sowieso HTTP), verwirft die Authentisierung (die steht in den durch RFC 2617 definierten Feldern) und vergisst den Host, der ja schon im bei HTTP 1.1 notwendigen „Host“-Feld steht. Dann nimmt man den Rest und macht damit ein normales GET.