2009-09-01 14 views
31

Quale codice di stato HTTP devo restituire quando un client invia dati non validi (ad esempio una stringa quando era previsto un intero)?Codice di stato HTTP per dati errati

Ho utilizzato 400 Bad Request, ma mentre ho letto i documenti HTTP che sembrano più applicabili agli errori del protocollo HTTP.

Vorrei utilizzare un codice di stato in modo che i client Flash e AJAX possano distinguere tra errore, dati non validi e errore del server senza dover analizzare una risposta.

risposta

46

Questo è esattamente ciò che 400 è per. Sì, è utilizzato per l'utilizzo errato del protocollo HTTP, ma non è esclusivamente per questo scopo.

+1

Per la domanda dell'OP, cosa succede se il client invia una richiesta HTTP con un 'intero?, Come previsto. Tuttavia, diciamo che il numero intero rappresenta l'ID utente dell'utente. Se il server non riesce a trovare quell'utente, dovrebbe essere restituito anche un '400'? –

+7

A 404 sarebbe la cosa migliore in quell'istanza @KevinMeredith – DasDave

5

Sarei davvero più incline a intercettare i dati non validi nel browser quando il client preme il pulsante di invio.

Se no, allora mi piacerebbe tornare 400 perché come standard dice:

La richiesta non può essere compresa dal server a causa di sintassi errata. Il cliente NON DOVREBBE ripetere la richiesta senza modifiche.

+3

Probabilmente dovresti fare entrambe le cose. Non ci sono garanzie che la tua API sia utilizzata da un browser. :) – weberc2

Problemi correlati