Medientypen verstehen und verwenden
kaepten
- https
Hallo Freunde
Ich habe ein kleines Handbuch vor mir, da ist so überschlagsmässig alles über HTTP drin. Allerdings zu wenig über die Medientypen. Die Liste gibt mir keine Auskunft was wann verwendet werden kann.
z.B. habe ich ein (ASP.NET) Beispiel vor mir, das beschreibt dass der Typ application/octet-stream den "Speichern unter" Dialog im Browser öffnet, da es sich um einene binären Stream handelt. Soweit so klar. Nur - ich hätte das so nie selbst herausgefunden. Im Büchlein steht halt simpel: "bin".
Gibts weiterführende Literatur oder eine Resource im WWW wo das etwas ausführlicher behandelt wird was da bei welchem Typ wirklich ab geht? Ich rede nicht von der Liste der möglichen Typen - die habe ich -, sondern effektiv eine Anwendungsorientierte Beschreibung.
Oder ist das eigentlich gar nicht so wichtig, denn wenn etwas anderes wie image/gif, image/x-xbitmap, image/jpeg, image/pjpeg an den Browser kommt, dann geht ohnehin der "Speichern unter" Dialog auf? Worin würde dann noch genau der Unterschied zu application/octet-stream liegen?
Vielen Dank für Hinweise und Tipps
Patrik
Hi,
z.B. habe ich ein (ASP.NET) Beispiel vor mir, das beschreibt dass der Typ application/octet-stream den "Speichern unter" Dialog im Browser öffnet, da es sich um einene binären Stream handelt.
das ist leider etwas vereinfacht. "application/octet-stream" sagt aus, dass es sich um unspezifizierte Daten handelt - um Bytes (Octets). Das heißt, der Client kann schwerlich ein vernünftiges Verhalten hiermit assoziieren (er könnte einen Hex-Editor starten, ansonsten ist kaum eine sinnvolle Aktion denkbar). Und was macht der Client, wenn er nicht weiß, was er mit etwas machen soll? Richtig, er gibt es an seinen Benutzer ab. Falls es einen solchen gibt, versteht sich.
Ich rede nicht von der Liste der möglichen Typen - die habe ich -, sondern effektiv eine Anwendungsorientierte Beschreibung.
Oh, das ist leicht: Wenn Anwendung vorhanden und in Client eingestellt, dann damit starten. Wenn nicht, dann Schulterzucken.
Oder ist das eigentlich gar nicht so wichtig, denn wenn etwas anderes wie image/gif, image/x-xbitmap, image/jpeg, image/pjpeg an den Browser kommt, dann geht ohnehin der "Speichern unter" Dialog auf?
Dann würde jede HTML-Seite zum Speichern angeboten werden.
Cheatah
Hoi Cheatah
Vielen Dank für Deine Antwort!
Oh, das ist leicht: Wenn Anwendung vorhanden und in Client eingestellt, dann damit starten. Wenn nicht, dann Schulterzucken.
Ok hab ich verstanden, dann würdest Du damit im Prinzip bestätigen, dass ich dem Client also eine "unspezifizierte Daten" senden muss, damit auf jeden Fall (evtl. Hex-Editor ausgenommen) der Speichern Dialog aufgeht.
Oder ist das eigentlich gar nicht so wichtig, denn wenn etwas anderes wie image/gif, image/x-xbitmap, image/jpeg, image/pjpeg an den Browser kommt, dann geht ohnehin der "Speichern unter" Dialog auf?
Dann würde jede HTML-Seite zum Speichern angeboten werden.
Ich habe mich nicht genau genug ausgedrückt: Oben habe ich eigentlich vom Client gesprochen; der liefert mir eine Accept - Liste. Wie sieht denn nun effektiv eine "übliche" Accept-Liste z.B. von Mozilla aus? Das würde dann ja heissen, dass alle Typen die ich ihm schicke und er mir zuvor nicht in der Accept-Liste aufgezählt hat einen Dialog "Speichern unter" provozieren? Oder stimmt das so nicht wenn es sich z.B. um ein Plugin (Flash) handelt?
Patrik
Hi,
Ok hab ich verstanden, dann würdest Du damit im Prinzip bestätigen, dass ich dem Client also eine "unspezifizierte Daten" senden muss, damit auf jeden Fall (evtl. Hex-Editor ausgenommen) der Speichern Dialog aufgeht.
ja. Sofern Du der Ausnahmenliste noch "kennt keinen solchen Dialog" hinzufügst. Bedenke, dass nicht jeder Client von einem Menschen bedient wird!
Oben habe ich eigentlich vom Client gesprochen; der liefert mir eine Accept - Liste.
Einige Typen werden vom Server als accepted vorausgesetzt; insbesondere sind dies (alle?) text/* sowie application/octet-stream.
Das würde dann ja heissen, dass alle Typen die ich ihm schicke und er mir zuvor nicht in der Accept-Liste aufgezählt hat einen Dialog "Speichern unter" provozieren?
Nö. "Ich will haben" != "ich kann umgehen mit".
Cheatah
Hoi
Einige Typen werden vom Server als accepted vorausgesetzt; insbesondere sind dies (alle?) text/* sowie application/octet-stream.
Darüber würde ich eben noch gerne mehr erfahren. Gibts da alternative Info-Quellen? Vor den eigentlichen RFC's fürchts mich ein wenig ;-)
Nö. "Ich will haben" != "ich kann umgehen mit".
Da stimmt schon, aber da seh ich keine grossen Hinderungsgrund. Denn ich kann in meiner Antwort ganz einfach "Ich will haben" ingnorieren - somit wäre wir beim "Ich kann umgehen mit" angelangt, was mich dann wirklich interessiert.
Vielleicht muss ich vorausschicken, dass ich schon davon ausgehe, dass ich mit einem Browser-Client spreche der einen Dialog öffnen wird/soll. Der Rest ist mir wurscht was die machen, die sind auch nicht meine potentiellen Kunden. Aber zurück zum Thema:
Gemäss meinem gscheiten Büchlein schickt der Browser eh immer auch Accept: */*. Somit wäre geklärt dass er sich ziemlich viel zumutet d.h. "Ich will haben" == "ALLEM" wäre. (Warum aber ist dann noch z.B. Accept: image/jpeg nötig??)
Soweit vielen Dank für Deine kompetente Unterstützung! Für meine Anforderungen und 1. Versuche wirds nun wohl reichen...
Gruss
Patrik
Hi,
Einige Typen werden vom Server als accepted vorausgesetzt; insbesondere sind dies (alle?) text/* sowie application/octet-stream.
Darüber würde ich eben noch gerne mehr erfahren.
nun, sagen wir so: Wenn ein Client eine URL anfordert, wird die dahinter sitzende Logik (welcher Art auch immer sie sein mag) irgendetwas zurückschicken müssen. Und wenn das nicht gerade ein potenziell ungewöhnlicher Typus ist, wird sich diese Logik einen Dreck drum scheren, wenn der Accepted-Header jenen Typus nicht beinhaltet. Also mehr Ignoranz als in irgendeiner Form definiert.
Davon abgesehen dürfte zumindest ein handelsüblicher Browser seinen Accepted-Header mit "*/*" beenden. Damit ist also alles abgedeckt.
Nö. "Ich will haben" != "ich kann umgehen mit".
Da stimmt schon, aber da seh ich keine grossen Hinderungsgrund. Denn ich kann in meiner Antwort ganz einfach "Ich will haben" ingnorieren - somit wäre wir beim "Ich kann umgehen mit" angelangt, was mich dann wirklich interessiert.
Ja. Und das ist im Accepted-Header nicht spezifziert. Mein Browser kann mit jedem MIME-Type umgehen, indem er ihn im Zweifel zum Speichern anbietet.
Vielleicht muss ich vorausschicken, dass ich schon davon ausgehe, dass ich mit einem Browser-Client spreche der einen Dialog öffnen wird/soll.
Dafür ist application/octet-stream ideal. Oder anders ausgedrückt: Alles andere wäre absurd.
Gemäss meinem gscheiten Büchlein schickt der Browser eh immer auch Accept: */*. Somit wäre geklärt dass er sich ziemlich viel zumutet d.h. "Ich will haben" == "ALLEM" wäre. (Warum aber ist dann noch z.B. Accept: image/jpeg nötig??)
Mein Mozilla schickt:
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1
RFC 2616 (http://www.ietf.org/rfc/rfc2616.txt) sagt Dir, wie das im Einzelnen zu interpretieren ist.
Cheatah