HTTP 501 Not Implemented
Il server semplicemente non può farlo: la funzionalità richiesta — solitamente il metodo HTTP — non è supportata affatto.
Cosa significa HTTP 501
HTTP 501 Not Implemented significa che il server non riconosce o non supporta la funzionalità richiesta per soddisfare la richiesta. La specifica lo riserva principalmente ai metodi HTTP non riconosciuti — il server non può gestire il verbo per nessuna risorsa, a differenza del 405, dove il verbo è noto ma non consentito per questo URL.
In pratica, il 501 compare anche su proxy e server legacy che ricevono richieste per cui non sono mai stati progettati (verbi WebDAV, PATCH su stack datati), oppure come segnaposto su backend configurati a metà.
Cause comuni degli errori 501
- Un metodo HTTP che il server non implementa affatto (ad esempio PATCH o verbi WebDAV su un server datato).
- Un proxy o gateway che riceve un metodo di richiesta che non può inoltrare.
- Un endpoint stub distribuito prima che la sua implementazione fosse completata.
- Nomi di metodo malformati generati da client difettosi (refusi come GETT).
Come risolverlo da sviluppatore
- Controlla il metodo esatto inviato — refusi e verbi personalizzati con maiuscole/minuscole errate sono sorprendentemente comuni.
- Se il metodo è legittimo (ad esempio PATCH), aggiorna o configura il server/framework per supportarlo, oppure instradalo via POST con un header di override dove lo stack lo consente.
- Distinguilo dal 405: se solo una route rifiuta il verbo, correggi la route (territorio del 405); se lo fa l'intero server, è una lacuna di capacità della piattaforma.
- Non restituire 501 per funzionalità incomplete in API di produzione — preferisci 404 o un feature flag, poiché 501 è cacheable per impostazione predefinita.
Esempio di risposta
HTTP/1.1 501 Not Implemented
Content-Type: application/json
{"error":"not_implemented","message":"PATCH is not supported by this server"}FAQ
Qual è la differenza tra 501 e 405?
405 significa che l'URL esiste ma rifiuta questo metodo (vedi l'header Allow). 501 significa che il server non supporta affatto il metodo per nessuna risorsa.
Un errore 501 è temporaneo?
Di solito no — segnala una capacità mancante, non un'interruzione del servizio. Scompare solo quando il server acquisisce il supporto per la funzionalità richiesta.
Perché la mia richiesta PATCH restituisce 501?
Il server o un proxy intermedio è precedente al supporto di PATCH. Aggiorna lo stack, abilita il metodo, oppure usa un override del metodo basato su POST.