Content handling

Una delle caratteristiche del protocollo HTTP  è la sua capacità di inviare qualsiasi tipo di informazione, immagini, testo, codice eseguibile e quant'altro.

Apache esegue un vero e proprio attachment a questi pacchetti aggiungendo un header Content-Type che specifica al client a quale media type o MIME type appartiene il file.

File Types
Apache acquisisce informazioni sul MIME-type dal file di configurazione (generale per tutto il sistema) chiamato mime.types oppure dal file settato tramite la direttiva TypesConfig
TypesConfig conf/mime.types

Ecco un piccolo esempio del contenuto di un simile file:
[root@dido root]# cat /usr/local/apache/conf/mime.types
application/x-shockwave-flash   swf
application/x-tar               tar
application/x-tcl               tcl
application/x-tex               tex
application/x-texinfo           texinfo texi
application/x-troff-man         man
application/x-wais-source       src


Oltre che editando questo file è possibile aggiungere nuovi MIME type direttamente nel file di configurazione principale di Apache (httpd.conf) tramite la direttiva AddType ed abbinarla alla direttiva Action per affiancare l'esecuzione di una azione specifica ad ogni tipo di file richiesto.
Questo succede per molti moduli i quali richiedono l'esecuzione di cgi o di comandi esterni ad Apache.
AddType  text/mylanguage    .myl .mylanguage
Action image/gif /cgi-bin/process-gif.cgi


L'alternativa alla direttiva  Addtype è AddHandler che mappa direttamente l'estensione con il MIME type, oppure ForceType che associa tutto il contenuto di una directory ad un MIME type.
AddHandler cgi-script .cgi
<Directory /images/>
ForceType image/gif
</Directory>


File Encoding
Ogni estensione di file è associata al tipo di encoding utilizzato per la sua creazione. Tramite la direttiva AddEncoding è possibile mappare  queste corrispondenze.
Come succedeva per i Mime-type, Apache invia un header aggiuntivo, Content-Encoding per comunicare al client quale tipo di  encoding è stato utilizzato per un certo file:
AddEncoding x-gzip .gz
AddEncoding x-compress .Z


File Languages
Oltre alle caratteristiche sopra esposte, è possibile associare una lingua ad un certa risorsa. In questo caso l'header contenente l'informazione è Content-Language e la direttiva utilizzata èAddLanguage:
AddLanguage en .en .english
AddLanguage it  .it .italy .italian

La lingua di default è settabile tramite la direttiva DefaultLanguage, che permette anche più argomenti, trattati con la priorità scritta:
General configuration:
DefaultLanguage en in
Per-directory configuration
<Directory /italy/>
DefaultLanguage it
</Directory>

Privacy Policy