HTTP consente più rappresentazioni di una risorsa. L'intestazione Accept
consente al client di scegliere la rappresentazione della risorsa.
GET /foo/bar HTTP/1.1
Accept: application/pdf
GET /foo/bar HTTP/1.1
Accept: text/html
GET /foo/bar HTTP/1.1
Accept: image/svg+xml
Se la risposta è 200 OK, si presume che l'entità sia la risorsa di quel tipo di contenuto.
Ma nelle specifiche ( RFC 2616 ), ci sono molti riferimenti alle entità che non sono risorse: 201 Creato, 202 Accettato, 409 Conflitto, 5xx, ecc.
Ad esempio, per una risposta Proibita 403:
The server understood the request, but is refusing to fulfill it...If the request method was not HEAD and the server wishes to make public why the request has not been fulfilled, it SHOULD describe the reason for the refusal in the entity.
Ma qual è il tipo di entità? Una pagina HTML? JSON?
Mentre leggo lo standard, l'intestazione Accept
si applica solo all'entità risorsa . Sarebbe strano generare un PDF del motivo per cui il server era in errore, solo perché la richiesta era per un application/pdf
.
C'è un modo per avere rappresentazioni multiple di risorse. Esiste un meccanismo standard per avere rappresentazioni multiple di errori? (Nel mio caso, ci sono client che utilizzano principalmente JSON, o principalmente XML).
Mi rendo conto che posso sempre creare X-Paul-Conflict-Accept
e X-Paul-Create-Accept
e X-Paul-Forbidden-Accept
intestazioni; Ero curioso di sapere se c'era un modo usuale di gestirlo.