Ein HTTP-Header erlaubt die Übertragung von strukturierten Daten über dem Message-Body
Das XHR-Object erlaubt zum einen, mit xhr.setRequestHeader()
einen bestimmten Header für den Request zu setzen. Zum Anderen ist es auch möglich, mit xhr.getResponseHeader()
bestimmte Header der Response zu ermitteln.
Damit ergeben sich einige Vereinfachungen, z.B. in der Fehlerbehandlung:
# serverseitig if( $day eq 'null'){ return $self->header( 'x-errstr' => uri_escape("Dieses Türchen hatten Sie schon aufgemacht!") ); } # clientseitig function query_callback(e){ if( e.target.getResponseHeader('x-errstr') ){ return alert( decodeURIComponent(e.target.getResponseHeader('x-errstr'))); } }
Mit einer solchen Vorgehensweise ist es möglich, die Fehlerbehandlung vom Message-Body vollständig zu trennen, ein Eingriff in im Message-Body vorliegende XML oder JSON Strukturen ist nicht mehr notwendig. Der HTTP-Message-Body steht somit auch der Übertragung ganzer Dateiinhalte zur Verfügung für Upload oder Download. Gleichermaßen zeigt obenstehender Code die Anwendung der Prozentkodierung, bekanntlich dürfen HTTP-Header ja nur ASCII-Zeichen enthalten.
Prozentkodiert lässt sich ein ganzer QUERY_STRING natürlich auch in einer einzigen Header-Zeile unterbringen. D.h., dass ein HTTP-Header auch strukturierte Daten enthalten kann. Über die maximale Länge eines HTTP-Headers fand ich unterschiedliche Angaben bis zu 8kb was wohl für die meisten Fälle ausreichen dürfte.
Die Binary der Grafik wird im Message-Body und die Beschreibung in einem Header der Response gesendet.
Datenschutzerklärung: Diese Seite dient rein privaten Zwecken. Auf den für diese Domäne installierten Seiten werden grundsätzlich keine personenbezogenen Daten erhoben. Das Loggen der Zugriffe mit Ihrer Remote Adresse erfolgt beim Provider soweit das technisch erforderlich ist. sos@rolfrost.de und wenn Sie möchten daß mein Prepaid nicht verfällt dürfen Sie mich auch gerne anrufen 01625 26 40 76.