4. Requisiti di registrazione (Registration Requirements)
Tutte le registrazioni dei tipi di media devono conformarsi ai vari requisiti stabiliti nelle sezioni seguenti. Si noti che le specifiche dei requisiti a volte variano a seconda dell'albero di registrazione, come dettagliato nelle sezioni seguenti.
4.1 Requisito di funzionalità
I tipi di media devono funzionare come formati di media effettivi. La registrazione di cose che sono meglio considerate come codifica di trasferimento, come un charset, o come una raccolta di entità separate di un altro tipo, non è consentita. Ad esempio, sebbene esistano applicazioni per decodificare la codifica di trasferimento base64 [RFC2045], base64 non può essere registrato come tipo di media.
Questo requisito si applica indipendentemente dall'albero di registrazione coinvolto.
4.2 Requisiti di denominazione
A tutti i tipi di media registrati devono essere assegnati nomi di tipo di livello superiore e di sottotipo. La combinazione di questi nomi serve a identificare univocamente il tipo di media, e la sfaccettatura del nome del sottotipo (o la sua assenza) identifica l'albero di registrazione. Sia i nomi di tipo di livello superiore che di sottotipo sono case-insensitive.
I nomi di tipo e sottotipo devono conformarsi al seguente ABNF:
type-name = restricted-name
subtype-name = restricted-name
restricted-name = restricted-name-first *126restricted-name-chars
restricted-name-first = ALPHA / DIGIT
restricted-name-chars = ALPHA / DIGIT / "!" / "#" /
"$" / "&" / "-" / "^" / "_"
restricted-name-chars =/ "." ; I caratteri prima del primo punto
; specificano sempre un nome di sfaccettatura
restricted-name-chars =/ "+" ; I caratteri dopo l'ultimo più
; specificano sempre un suffisso di sintassi strutturata
4.2.1 Tipi di media text
Il tipo di livello superiore "text" è destinato all'invio di materiale che è principalmente in forma testuale.
Molti sottotipi di text, in particolare il sottotipo "text/plain", che è un sottotipo generico per testo semplice definito in [RFC2046], definiscono un parametro "charset". Se un parametro "charset" è definito per un particolare sottotipo di text, deve essere utilizzato per specificare un nome di charset definito in conformità con le procedure stabilite in [RFC2978].
4.2.2 Tipi di media image
Un tipo di livello superiore "image" indica che il contenuto specifica una o più immagini individuali. Il sottotipo denomina il formato di immagine specifico.
4.2.3 Tipi di media audio
Un tipo di livello superiore "audio" indica che il contenuto contiene dati audio. Il sottotipo denomina il formato audio specifico.
4.2.4 Tipi di media video
Un tipo di livello superiore "video" indica che il contenuto specifica un'immagine variabile nel tempo, possibilmente con colore e suono coordinato. Il termine "video" è utilizzato nel suo senso più generico, piuttosto che con riferimento a una particolare tecnologia o formato.
4.2.5 Tipi di media application
Il tipo di livello superiore "application" deve essere utilizzato per dati discreti che non rientrano in nessuno degli altri nomi di tipo, e in particolare per dati da elaborare da qualche tipo di programma applicativo.
4.2.6 Tipi di media multipart e message
Multipart e message sono tipi compositi; cioè, forniscono un mezzo per incapsulare zero o più oggetti, ciascuno un tipo di media separato.
Tutti i sottotipi di multipart e message devono conformarsi alle regole sintattiche e ad altri requisiti specificati in [RFC2046] e modificati dalla sezione 3.5 di [RFC6532].
4.2.7 Tipi di livello superiore aggiuntivi
In alcuni casi, un nuovo tipo di media potrebbe non "adattarsi" a nessuno dei nomi di tipo di livello superiore attualmente definiti. Tali casi dovrebbero essere piuttosto rari. Tuttavia, se si presenta un caso del genere, è possibile definire un nuovo nome di tipo per adattarlo. La definizione di un nuovo nome di tipo di livello superiore deve essere fatta tramite una RFC Standards Track; nessun altro meccanismo può essere utilizzato per definire nomi di tipo aggiuntivi.
4.2.8 Suffissi di nomi di sintassi strutturata
I tipi di media che fanno uso di una sintassi strutturata nominata dovrebbero utilizzare il "+suffisso" registrato appropriato per quella sintassi strutturata quando vengono registrati. Allo stesso modo, ai tipi di media non devono essere assegnati nomi che incorporano suffissi per sintassi strutturate che non impiegano effettivamente.
4.2.9 Alias deprecati
In alcuni casi, un singolo tipo di media potrebbe essere stato ampiamente distribuito prima della registrazione con più nomi. In tali casi, deve essere scelto un nome preferito per il tipo di media, e le applicazioni devono utilizzarlo per essere conformi alla registrazione del tipo.
4.3 Requisiti dei parametri
I tipi di media possono scegliere di utilizzare uno o più parametri di tipo di media, o alcuni parametri possono essere automaticamente resi disponibili al tipo di media in virtù dell'essere un sottotipo di un tipo di contenuto che definisce un insieme di parametri applicabili a uno qualsiasi dei suoi sottotipi.
I nomi dei parametri hanno la sintassi dei nomi e valori dei tipi di media:
parameter-name = restricted-name
I nomi dei parametri sono case-insensitive e nessun significato è attribuito all'ordine in cui appaiono. È un errore che un parametro specifico sia specificato più di una volta.
4.4 Requisiti di canonizzazione e formato
Tutti i tipi di media registrati devono utilizzare un singolo formato di codifica canonico.
4.5 Raccomandazioni di interscambio
I tipi di media dovrebbero includere raccomandazioni su come realizzare al meglio l'interscambio tra sistemi eterogenei.
4.6 Requisiti di sicurezza
Deve essere effettuata un'analisi dei problemi di sicurezza per tutte le registrazioni. Tutte le registrazioni dei tipi di media devono includere una sezione "Considerazioni sulla sicurezza" che dettaglia le implicazioni sulla sicurezza del tipo di media.
4.7 Requisiti specifici per i tipi di media XML
I tipi di media che impiegano XML devono conformarsi ai requisiti specificati in [RFC7303].
4.8 Requisiti di codifica
Le registrazioni dei tipi di media devono specificare chiaramente come il tipo deve essere codificato per l'uso con vari protocolli di trasporto.
4.9 Non-requisiti di utilizzo e implementazione
La registrazione di un tipo di media non implica alcuna approvazione di una particolare implementazione.
4.10 Requisiti di pubblicazione
Le registrazioni dell'albero degli standard per tipi di media ampiamente distribuiti dovrebbero essere pubblicate come RFC.
4.11 Requisiti dell'identificatore di frammento
I tipi di media che utilizzano identificatori di frammento devono documentare quale sintassi di identificatore di frammento è supportata.
4.12 Informazioni aggiuntive
Il modello di registrazione del tipo di media include un numero di campi di informazioni aggiuntive.