Sebbene l’uso di immagini, video e GIF non fosse tipico agli albori del web, oggi ci aspettiamo che un sito offra immagini accattivanti oltre ad offrire testi informativi. Non c’è da sorprendersi che, quando la comunicazione tra il browser e il server non va a buon fine a causa di una mancata corrispondenza tra i media, venga visualizzato un errore. In questo caso, l’errore “HTTP 415”.

Dato che i media sono quasi un prerequisito del web moderno, vedere un errore di questo tipo significa che avrete bisogno di una soluzione, e in fretta. Tuttavia, a differenza di altri errori, soprattutto per i siti WordPress, questo è un problema difficile da risolvere. Potreste aver bisogno di conoscenze di sviluppo per risolverlo, ma questo è un problema da risolvere in un secondo momento.

Dai un’occhiata alla nostra Video Guida su come correggere l’errore 415

In questo articolo analizzeremo l’errore “HTTP 415” e descriveremo delle sue cause. E vedremo anche come risolverlo.

Cos’è l’Errore HTTP 415

L’errore “HTTP 415” è uno dei tanti codici di stato 4XX. Se pensate che si associa a errori come il 404, inizierete a capire cosa sta succedendo.

In breve, gli errori 4XX riguardano tutti la mancanza di qualcosa di cui il client o il server hanno bisogno. Il nome completo dell’errore, “415 Unsupported Media Type” (Tipo di file multimediale non supportato), è indicativo. Il server riceve un tipo di file multimediale che non riconosce o non può accettare.

Nella maggior parte dei casi, vedrete l’errore “HTTP 415” quando utilizzate un’API. Si tratta di un problema lato server e in seguito scopriremo il motivo per cui si verifica questo errore.

Perché si Verifica l’Errore HTTP 415

Indipendentemente da come lo si chiami – errore “HTTP 415”, errore “415 Unsupported Media Type” – significa che il server rifiuta di accettare una richiesta dal browser. Spesso questo accade perché il contenuto inviato dal browser (il payload) non è nel formato corretto.

Si tratta di un problema simile a quello dell’errore “422 Unprocessable Entity“, in quanto entrambi hanno a che fare con dati sbagliati che arrivano al server e quest’ultimo va in allarme. Vale la pena sottolineare che esiste una differenza tra i dati inviati dal browser e quelli ricevuti dal server. Possono sembrare uguali, ma c’è una differenza.

Ad esempio, una strategia generale di cattura degli errori impedirà a un utente di prendere un tipo di file non riconosciuto e di caricarlo attraverso un’interfaccia che accetta solo PNG. Tuttavia, se non si specificano i tipi esatti di file multimediali che il server può elaborare, si innesca un errore dal lato del back-end. Sul lato front, l’utente potrebbe non vedere nulla. Gli utenti di WordPress ricevono una notifica dalla schermata di amministrazione:

L’errore File Type Not Permitted di WordPress.

La buona notizia è che WordPress ha un’infrastruttura permissiva: pensate ai diversi tipi di file che potete caricare nella Libreria Media, ad esempio.

Tuttavia, si tratta di un problema a livello di sviluppatore piuttosto che di un errore dell’utente. Ecco perché ci occuperemo delle possibili soluzioni.

Come Risolvere l’Errore HTTP 415

Ricapitolando, l’errore “HTTP 415” indica che il server non accetta un tipo di file perché non supporta quel carico utile. Ciò significa che c’è un problema nel codice PHP sottostante che deve essere risolto.

A questo punto, se non siete lo sviluppatore del sito o del tema e non avete competenze di sviluppo, è probabile che vogliate contattare un esperto. Se cercate tra i file del tema, si potrebbe verificare un problema.

Tuttavia, la documentazione di Mozilla sull’errore vi fornisce due indizi per iniziare la ricerca: due “intestazioni di rappresentazione”: Content-Type e Content-Encoding.

Come Funzionano le Intestazioni Content-Type e Content-Encoding

L’intestazione Content-Type fornisce al client la richiesta della risorsa prima che avvenga l’encoding. Indica il tipo di media originale della risorsa. Ad esempio:


Content-Type: text/html; charset=UTF-8

Content-Type: image/jpeg;

Content-Encoding è invece un elenco di tutti gli encoding del payload (cioè il vostro media), che indica come il file deve essere decodificato per ottenere il payload originale.


Content-Encoding: gzip

Content-Encoding: br

Come si può vedere, un modo comune di codificare i dati è la compressione dei file. In teoria non è un problema, ma lo sarà se non lo inserite nei file del vostro tema o plugin.

Trovare una Soluzione per il Codice di Errore HTTP 415

Alla luce di quanto detto, avete tre strade da seguire se riscontrate un errore HTTP 415, tutte relative al vostro codice PHP:

  • Dovrete assicurarvi di inviare il giusto valore dell’intestazione Content-Type.
  • Dovrete anche assicurarti che il server sia in grado di elaborare ciò che specificate per l’intestazione Content-Type.
  • Controllare cosa può elaborare il server attraverso l’intestazione Accept.

Non dovrete necessariamente farlo all’interno dei file core, anche se potreste farlo con una richiesta API REST. Ad esempio, un utente di Stack Overflow ha riscontrato questo problema utilizzando PHP puro su cURL per effettuare una richiesta API.

Ci sono due punti in cui cercare. Innanzitutto, specificate i tipi di file corretti all’interno dell’intestazione Content-Type:


$headers = array (

    ‘Content-Type’ => ‘application/json’,

   …

In secondo luogo, questo utente ha commesso un errore di battitura nel dichiarare una chiave di intestazione non valida utilizzando la funzione wp_remote_post():


$arg = array (

    'header' => $headers,

    …

Dato che a “header” manca una “s”, l’errore sarebbe stato “HTTP 415”. Ma dovrete anche assicurarvi che il client possa accettare i tipi di file corretti. Per farlo, dovrete utilizzare un’altra intestazione: Accept. Ad esempio:


Accept: text/html

Accept: image/*

In questo modo vi assicurerete che entrambe le estremità della catena, il client e il server, possano accettare e inviare i tipi di file corretti, mettendo definitivamente fine all’errore “HTTP 415”.

Riepilogo

Gli errori del sito web sono spesso semplici da risolvere. Lo abbiamo fatto diverse volte sul blog di Kinsta e la natura della piattaforma vi permette di essere pronti a ripartire in breve tempo. Tuttavia, l’errore “HTTP 415” è diverso, in quanto è difficile trovare una soluzione se non si è sviluppatori.

La soluzione consiste nel lavorare con i valori dell’intestazione Content-Type per assicurarsi di inviare al server quello giusto. Potreste anche avere un semplice errore di battitura. Questo sembra un momento “doh”, ma in questo caso può essere difficile da individuare, soprattutto se la vostra preoccupazione riguarda i tipi di contenuto che inviate al server.

Mentre sietre voi a dover risolvere l’errore “HTTP 415”, per altri problemi con il vostro sito, Kinsta è a vostra disposizione. Il nostro team di supporto è pronto ad aiutarvi a capire cosa succede al vostro sito nelle rare occasioni in cui non carica.