4.8. Definire il contenuto del messaggio
4.8. Definire il contenuto del messaggio
Le applicazioni che utilizzano HTTP DEVONO specificare il formato del contenuto di richieste e risposte, tipicamente definendo uno o più tipi di media [RFC6838]. Nel farlo, DOVREBBERO registrare questi tipi di media seguendo le procedure in [RFC6838].
I formati comuni includono:
-
JSON [JSON]
-
XML [XML]
-
CBOR [RFC8949]
-
Protocol Buffers
-
Formati personalizzati specifici dell'applicazione
Quando si specifica il contenuto, le applicazioni DOVREBBERO:
-
Utilizzare tipi di media esistenti e ampiamente compresi dove possibile (ad esempio,
application/jsonper contenuto JSON). -
Definire nuovi tipi di media quando necessario, utilizzando l'albero appropriato (ad esempio,
application/vnd.example.myapp+jsonper un formato specifico del fornitore basato su JSON). -
Specificare chiaramente la struttura e la semantica del contenuto.
-
Considerare il supporto di più rappresentazioni della stessa risorsa, utilizzando la negoziazione del contenuto (vedere [HTTP] Sezione 12).
-
Utilizzare il campo di intestazione
Content-Typeper indicare il tipo di media del contenuto inviato. -
Utilizzare il campo di intestazione
Acceptper indicare i tipi di media che il client è disposto a ricevere.
Le applicazioni DOVREBBERO supportare la negoziazione del contenuto per consentire a client e server di concordare sulla rappresentazione di una risorsa. Questo viene fatto utilizzando il campo di intestazione Accept nelle richieste e il campo di intestazione Content-Type nelle risposte.
Ad esempio, un client potrebbe inviare:
Accept: application/json, application/xml;q=0.9
indicando che preferisce JSON ma accetterà XML con una preferenza leggermente inferiore.
Il server può quindi rispondere con la rappresentazione più appropriata in base a ciò che può fornire e alle preferenze del client.