Passa al contenuto principale

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/json per contenuto JSON).

  • Definire nuovi tipi di media quando necessario, utilizzando l'albero appropriato (ad esempio, application/vnd.example.myapp+json per 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-Type per indicare il tipo di media del contenuto inviato.

  • Utilizzare il campo di intestazione Accept per 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.