I web server uti­liz­za­no i codici di stato HTTP per informare i client, come ad esempio i browser, sullo stato di la­vo­ra­zio­ne delle richieste inviate. Sono diversi i codici che servono a segnalare il successo o l’in­suc­ces­so di una richiesta e alcuni di essi sono messaggi molto specifici. Mentre alcuni sono piuttosto frequenti e vengono co­mu­ni­ca­ti di continuo agli utenti del World Wide Web, l’errore 405 (Method not allowed) è una notifica ab­ba­stan­za rara. In questo articolo vi spie­ghia­mo esat­ta­men­te cosa comporta questo messaggio di errore e perché la sua soluzione spetta al gestore del sito web.

IONOS GPT
Il tuo as­si­sten­te IA sovrano per una maggiore pro­dut­ti­vi­tà

Fai domande, crea contenuti, fai ricerche – in modo sicuro e senza limiti di chat con IONOS GPT. L'al­ter­na­ti­va sovrana e con­ve­nien­te a ChatGPT e simili.

Che cosa significa l’errore HTTP 405?

L’Hypertext Transfer Protocol (HTTP) definisce i metodi che indicano le azioni che si possono eseguire sul server web con­tat­ta­to. I seguenti sono alcuni tra i metodi più uti­liz­za­ti:

  • GET: richiesta di in­for­ma­zio­ni associate a uno specifico URL
  • HEAD: richiesta di in­for­ma­zio­ni dell’header associate a un URL
  • POST: invio di dati al web server (es. dati dei moduli)
  • PUT: so­sti­tu­zio­ne dei dati di un URL specifico con dati nuovi trasmessi dal client
  • DELETE: eli­mi­na­zio­ne dei dati nel ri­spet­ti­vo URL
K1OcErpdE-8.jpg Per vi­sua­liz­za­re questo video, sono necessari i cookie di terze parti. Puoi accedere e mo­di­fi­ca­re le im­po­sta­zio­ni dei cookie qui.

L’am­mi­ni­stra­to­re può con­fi­gu­ra­re un web server in modo che permetta o meno ognuno dei singoli metodi. In assenza di contenuti in­te­rat­ti­vi sul sito, ad esempio, è logico che il metodo POST non sia con­sen­ti­to, perché l’utente non avrebbe comunque la pos­si­bi­li­tà di inserire i propri dati e inviarli al web server. Qualora invece la pagina contenga un modulo per l’invio di dati da parte dell’utente, il server di norma consente anche il metodo POST. In caso contrario viene vi­sua­liz­za­to il messaggio di errore con il codice di stato 405, il cui scopo è informare il browser e il suo utente che il metodo uti­liz­za­to non è permesso (in inglese: Method not allowed).

L’esatta for­mu­la­zio­ne del messaggio HTTP 405 non è la stessa per tutti i server. Le espres­sio­ni più co­no­sciu­te sono le seguenti:

  • 405 Method Not Allowed
  • 405 Not Allowed
  • Method Not Allowed
  • HTTP 405 Error
  • HTTP Error 405 – Method Not Allowed
  • HTTP 405 Method Not Allowed
  • Error: 405 Method Not Allowed
  • 405 – HTTP verb used to access this page is not allowed
  • HTTP Status 405 – HTTP method GET is not supported by this URL

Quando si verifica l’errore 405?

Abbiamo già visto che l’errore HTTP 405 è dovuto esclu­si­va­men­te a un problema lato server. La cosa può sembrare priva di senso, dal momento che Il codice di stato 405 ap­par­tie­ne al gruppo di messaggi che tec­ni­ca­men­te segnalano problemi lato client (tipo 4xx). Ma la con­trad­di­zio­ne è solo apparente: nel caso in cui il browser invii una richiesta al web server con un metodo HTTP non con­sen­ti­to dalla sua con­fi­gu­ra­zio­ne, dal punto di vista del server si tratta di un errore dovuto al client, che in questo caso ha sem­pli­ce­men­te inoltrato una richiesta sbagliata. Che vogliate soltanto aderire a un’offerta del sito e compilare modulo di contatto, è una cosa che il server non sa al momento dell’ela­bo­ra­zio­ne della richiesta.

Sono tre gli scenari tipici in cui si può ve­ri­fi­ca­re l’errore 405 - Method not allowed:

  1. Il divieto del metodo HTTP è dovuto a un errore di con­fi­gu­ra­zio­ne del web server o dei com­po­nen­ti del software che devono eseguire l’azione ri­spet­ti­va per la risorsa URL de­si­de­ra­ta.
  2. Il divieto del metodo HTTP è stato previsto dal webmaster, molto spesso per ragioni di sicurezza. L’errore sta in una risorsa URL del sito, che in base al modo in cui è pro­gram­ma­ta richiede l’utilizzo di un metodo non con­sen­ti­to.
  3. Il metodo HTTP non è con­sen­ti­to dal provider di hosting del gestore del sito. Il caso si presenta so­prat­tut­to con il metodo POST, ne­ces­sa­rio per inserire dati e che alcuni provider bloccano per ragioni di sicurezza quando viene ef­fet­tua­to l’accesso a documenti HTML.

Errore HTTP 405: come ri­sol­ver­lo

Se vi imbattete in un sito web che mostra il messaggio d’errore HTTP 405, dif­fi­cil­men­te sarete in grado di risolvere il problema da soli. Soluzioni semplici e immediate come ri­ca­ri­ca­re la pagina, riavviare il router o con­trol­la­re le im­po­sta­zio­ni del proxy, che po­treb­be­ro fun­zio­na­re con altri errori HTTP, in questo caso sono inef­fi­ca­ci. Conviene quindi con­tat­ta­re l’am­mi­ni­stra­to­re per segnalare il problema e ottenere in­for­ma­zio­ni più precise sulla causa.

La si­tua­zio­ne ov­via­men­te cambia se siete voi stessi i re­spon­sa­bi­li della pagina che mostra il messaggio 405 agli utenti. In base alla causa dell’errore, avete diverse opzioni per ri­sol­ver­lo ed è con­si­glia­bi­le farlo il prima possibile onde evitare di in­fa­sti­di­re i vi­si­ta­to­ri del sito e di incorrere in eventuali penalità da parte dei motori di ricerca.

Soluzione 1: attivare il metodo HTTP

Se non siete sicuri della causa della notifica 405 – Method not allowed, conviene anzitutto con­trol­la­re le im­po­sta­zio­ni delle com­po­nen­ti del software che ge­sti­sco­no le risposte delle richieste HTTP. Di solito si tratta del web server, ma anche un proxy pre­de­fi­ni­to o un gestore HTTP (nelle ap­pli­ca­zio­ni web ASP.NET) po­treb­be­ro essere re­spon­sa­bi­li del problema nel caso in cui sem­pli­ce­men­te il metodo non sia con­sen­ti­to. Poiché le diverse ap­pli­ca­zio­ni si dif­fe­ren­zia­no in termini di con­fi­gu­ra­zio­ne, è prima ne­ces­sa­rio scoprire il fun­zio­na­men­to esatto di at­ti­va­zio­ne e di­sat­ti­va­zio­ne dei metodi HTTP.

I web server Apache con­sen­to­no ad esempio di attivare i metodi at­tra­ver­so il modulo mod_al­lo­w­me­thods. Lo potete ve­ri­fi­ca­re nella direttiva Al­lo­w­Me­thods all’interno dei con­te­ni­to­ri <Location>, che servono per mo­di­fi­ca­re le im­po­sta­zio­ni di uno o più URL. Una con­fi­gu­ra­zio­ne che permetta l’accesso alla risorsa e l’im­mis­sio­ne dei dati lato client può essere im­ple­men­ta­ta con il comando seguente:

<Location "/">
    AllowMethods GET POST OPTIONS
</Location>
N.B.

Nelle vecchie versioni di Apache i metodi HTTP con­sen­ti­ti venivano definiti at­tra­ver­so le direttive <Limit> e <LimitExcept>.

Soluzione 2: pulire il codice sorgente

È del tutto normale che un am­mi­ni­stra­to­re decida di bloccare un metodo HTTP per una ragione specifica, come quella di raf­for­za­re la sicurezza del sito (di solito tramite il metodo PUT). No­no­stan­te questo, può capitare che il client sia comunque in grado di inviare una richiesta di questo tipo per re­cu­pe­ra­re una risorsa URL. Casi come questi sono spesso dovuti a un errore nella pro­gram­ma­zio­ne del sito web. La pagina o l’elemento ri­chia­ma­to sono stati collegati per sbaglio al metodo in questione e l’errore 405 ne è la logica con­se­guen­za.

Per risolvere questo problema, dovete trovare il codice sbagliato nel documento HTML e so­sti­tui­re il metodo inserito con quello corretto. Una volta sistemati il codice sorgente e la con­fi­gu­ra­zio­ne del server, la notifica di errore HTTP 405 dovrebbe sparire dal browser dei vi­si­ta­to­ri.

Soluzione 3: bypassare il blocco di sicurezza del provider

Come già detto, la causa dell’errore 405 può risiedere anche nella di­sat­ti­va­zio­ne da parte del provider di hosting dei metodi HTTP cor­ri­spon­den­ti ad alcuni tipi di MIME, come ad esempio un documento HTML, per ragioni di sicurezza. In questo caso conviene na­tu­ral­men­te con­tat­ta­re il vostro provider e chiedere l’at­ti­va­zio­ne del metodo de­si­de­ra­to. Se questo non è possibile, ci sono dei trucchi per uti­liz­zar­lo comunque nel vostro sito web.

Il blocco può essere aggirato fornendo al sito un tipo di MIME diverso e per il quale è di­spo­ni­bi­le il metodo de­si­de­ra­to. Facciamo un esempio concreto: il metodo POST è so­li­ta­men­te di­sa­bi­li­ta­to per le pagine HTML, mentre funziona nei documenti PHP. Mo­di­fi­can­do l’esten­sio­ne e di con­se­guen­za il tipo di documento web da index.html a index.php, la pro­ba­bi­li­tà che l’errore 405 venga risolto è molto alta.

86pFuCB1YyY.jpg Per vi­sua­liz­za­re questo video, sono necessari i cookie di terze parti. Puoi accedere e mo­di­fi­ca­re le im­po­sta­zio­ni dei cookie qui.

Un altro trucco è quello di im­ple­men­ta­re la pagina che causa l’errore 405 come contenuto della pagina di notifica di errore 405 vi­sua­liz­za­ta. Per farlo è suf­fi­cien­te salvare la pagina cor­ri­spon­den­te in una directory separata e definirla nel file di con­fi­gu­ra­zio­ne come messaggio ufficiale di errore 405.

ErrorDocument 405 /PathToFile/example.html

Questa soluzione ha tuttavia uno svan­tag­gio: tutte le vi­sua­liz­za­zio­ni della pagina sono con­teg­gia­te come errori, rendendo più dif­fi­col­to­sa la va­lu­ta­zio­ne per fini sta­ti­sti­ci.

Vai al menu prin­ci­pa­le