No.
Il tipo di contenuto dovrebbe essere quello che è noto, se lo conosci. application/octet-stream
è definito come "dati binari arbitrari" in RFC 2046, e qui c'è una chiara sovrapposizione che è appropriata per le entità il cui unico scopo è quello di essere salvate su disco, e da quel momento in poi al di fuori di qualsiasi cosa "webby". O guardarlo da un'altra direzione; l'unica cosa che si può fare in sicurezza con application / octet-stream è salvarlo su file e sperare che qualcun altro sappia a cosa serve.
È possibile combinare l'uso di Content-Disposition
con altri tipi di contenuto, come image/png
o anche text/html
per indicare che si desidera salvare anziché visualizzare. In passato alcuni browser lo ignoravano, text/html
ma penso che questo fosse molto tempo fa a questo punto (e vado a letto presto, quindi non inizierò a testare un sacco di browser adesso; forse più tardi).
RFC 2616 menziona anche la possibilità di token di estensione, e oggigiorno la maggior parte dei browser riconosce inline
che vuoi che l'entità venga visualizzata se possibile (cioè, se è un tipo che il browser sa come visualizzare, altrimenti non ha scelta in merito) . Questo è ovviamente il comportamento predefinito, ma significa che puoi includere la filename
parte dell'intestazione, che i browser useranno (forse con qualche aggiustamento in modo che le estensioni dei file corrispondano alle norme di sistema locali per il tipo di contenuto in questione, forse no) come suggerimento se l'utente tenta di salvare.
Quindi:
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="picture.png"
Significa "Non so che diavolo sia. Per favore, salvalo come file, preferibilmente chiamato picture.png".
Content-Type: image/png
Content-Disposition: attachment; filename="picture.png"
Significa "Questa è un'immagine PNG. Per favore salvala come file, preferibilmente chiamato picture.png".
Content-Type: image/png
Content-Disposition: inline; filename="picture.png"
Significa "Questa è un'immagine PNG. Per favore visualizzala a meno che tu non sappia come visualizzare immagini PNG. Altrimenti, o se l'utente sceglie di salvarla, raccomandiamo il nome picture.png per il file con cui la salvi".
Di quei browser che riconoscono inline
alcuni lo userebbero sempre, mentre altri lo userebbero se l'utente avesse selezionato "salva collegamento come" ma non se avessero selezionato "salva" durante la visualizzazione (o almeno IE lo fosse, potrebbe essere cambiato alcuni anni fa).