It depends
Una cosa importante da riconoscere è che il codice di stato, così come le intestazioni, sono metadati che hanno significato per i componenti generici che partecipano allo scambio di messaggi. Non sono realmente destinati al consumatore finale.
Una delle differenze chiave tra 2xx e 4xx è l'effetto che ha sulle cache. RFC 7234 spiega
A cache MUST invalidate the effective Request URI (Section 5.5 of [RFC7230]) as well as the URI(s) in the Location and Content-Location response header fields (if present) when a non-error status code is received in response to an unsafe request method.
PUT, POST, PATCH sono tutti non sicuri .
Le cache (e altri componenti intermedi) non dovrebbero scavare nel corpo della risposta per capire cosa sta succedendo - il server di origine dovrebbe mettere tutti i suggerimenti necessari nella riga di stato e nelle intestazioni.
Quindi, per questo caso, una delle dimensioni di "dipende" dipende dal fatto che si desideri che le cache non invalidi le rappresentazioni della risorsa.