Alors que l’utilisation d’images, de vidéos et de GIF n’était pas typique dans les premiers jours du web, nous nous attendons maintenant à ce qu’un site offre des visuels attrayants ainsi que du texte informatif. Il n’est pas non plus surprenant que lorsque la communication entre le navigateur et le serveur se dérègle en raison d’une incompatibilité des médias, une erreur s’affiche. Dans ce cas, l’erreur « HTTP 415 ».

Les médias étant presque un prérequis du Web moderne, l’apparition d’une erreur les concernant signifie que vous aurez besoin d’une solution, rapidement. Cependant, contrairement à d’autres corrections d’erreurs – en particulier pour les sites Web WordPress – ce problème est un dur à cuire. Vous aurez peut-être besoin de quelques connaissances en codage pour le résoudre, mais c’est quelque chose à faire plus tard.

Consultez notre guide vidéo pour corriger l’erreur 415

Dans cet article, nous allons examiner l’erreur « HTTP 415 » et parler de ses causes. Ensuite, nous verrons comment la corriger.

Ce qu’est l’erreur HTTP 415

L’erreur « HTTP 415 » est l’un des nombreux codes d’état 4XX. Si vous comprenez qu’elle est associée à des erreurs telles qu’une 404, vous commencerez à comprendre ce qui se passe.

En bref, les erreurs 4XX traitent toutes d’un élément manquant dont le client ou le serveur a besoin. Le nom complet de l’erreur – un « 415 Unsupported Media Type » – donne le ton. Le serveur reçoit un type de fichier multimédia qu’il ne reconnaît pas ou ne peut pas accepter.

Dans la plupart des cas, vous verrez l’erreur « HTTP 415 » lorsque vous utilisez une interface de programmation d’application (API). Il s’agit d’un problème côté serveur, et nous verrons ensuite pourquoi cela se produit en premier lieu.

Pourquoi l’erreur HTTP 415 se produit-elle ?

Peu importe comment vous l’appelez – l’erreur « HTTP 415 », l’erreur « 415 Unsupported Media Type » – cela signifie que le serveur refuse d’accepter une requête du navigateur. C’est souvent parce que ce que le navigateur envoie (la charge utile) n’est pas dans le bon format.

Il s’agit d’un problème similaire à celui de l’erreur « 422 Unprocessable Entity », puisqu’il s’agit dans les deux cas de données erronées qui atteignent le serveur et que ce dernier panique. Il convient également de souligner qu’il existe une distinction entre les données que le navigateur envoie et celles que le serveur reçoit. Elles peuvent sembler être les mêmes, mais il y a une différence.

Par exemple, une stratégie générale de détection des erreurs empêchera un utilisateur de prendre un type de fichier non reconnu et de le téléverser via une interface qui n’accepte que les PNG. Cependant, si vous ne spécifiez pas les types exacts de médias qu’un serveur peut traiter, cela déclenchera une erreur sur l’administration. Sur l’interface utilisateur, un utilisateur pourrait ne rien voir du tout. Les utilisateurs de WordPress reçoivent une notification sur l’écran d’administration:

L'erreur Type de fichier non autorisé dans WordPress.
L’erreur Type de fichier non autorisé dans WordPress.

La bonne nouvelle est que WordPress dispose d’une infrastructure permissive – pensez aux différents types de fichiers que vous pouvez téléverser dans la médiathèque, par exemple.

Malgré cela, il s’agit d’un problème au niveau du développeur plutôt que d’une erreur de l’utilisateur. En tant que tel, nous allons nous plonger dans ce qui pourrait être la prochaine solution.

Comment corriger l’erreur HTTP 415

Pour résumer, l’erreur « HTTP 415 » vous indique que le serveur n’accepte pas un type de fichier car il ne prend pas en charge cette charge utile. Cela signifie qu’il y a un problème dans le code PHP sous-jacent qui doit être corrigé.

À ce stade, si vous n’êtes pas le développeur du site ou du thème, et que vous n’avez aucune compétence en code, vous voudrez probablement contacter quelqu’un d’expert. Fouiller dans les fichiers de votre thème pourrait causer un problème.

Cependant, la documentation de Mozilla sur cette erreur vous donne deux indices pour commencer votre recherche – deux « en-têtes de représentation » : Content-Type, et Content-Encoding.

Fonctionnement des en-têtes Content-Type et Content-Encoding

L’en-tête Content-Type fournit à la demande du client la ressource avant tout encodage. Il indique le type de média original de la ressource. Par exemple :


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

Content-Type: image/jpeg;

En revanche, Content-Encoding est une liste de tous les encodages que possède la charge utile (c’est-à-dire votre média), ce qui indique comment le fichier doit être décodé afin d’obtenir la charge utile originale.


Content-Encoding: gzip

Content-Encoding: br

Comme vous pouvez le constater, la compression des fichiers est un moyen courant d’encoder les données. Ce n’est pas un problème en théorie, mais ce le sera si vous ne le codez pas dans les fichiers pertinents de votre thème ou extension.

Trouver une solution pour le code d’erreur HTTP 415

Compte tenu de ce qui précède, vous avez trois possibilités à explorer si vous découvrez une erreur HTTP 415, toutes liées à votre code PHP:

  • Vous devrez vous assurer que vous envoyez la bonne valeur d’en-tête Content-Type.
  • Vous voudrez également vous assurer que le serveur peut traiter ce que vous spécifiez pour l’en-tête Content-Type.
  • Vérifiez ce que le serveur peut traiter par le biais de l’en-tête Accept.

Vous ne le ferez pas nécessairement dans les fichiers du cœur, bien que vous puissiez le faire dans le cadre d’une requête d’API REST. Par exemple, un utilisateur de Stack Overflow a rencontré ce problème en utilisant du PHP pur sur cURL pour faire une requête d’API.

Il y a deux endroits où chercher. Premièrement, spécifiez les types de fichiers corrects dans l’en-tête Content-Type :


$headers = array (

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

   …

Deuxièmement, cet utilisateur a commis une faute de frappe en déclarant une clé d’en-tête non valide à l’aide de la fonction wp_remote_post() :


$arg = array (

    'header' => $headers,

    …

Parce qu’il manque un « s » à « header », l’erreur « HTTP 415 » s’est produite. Cependant, vous devez également vous assurer que le client peut accepter les bons types de fichiers. Pour ce faire, vous utiliserez un autre en-tête : Accept. Par exemple :


Accept: text/html

Accept: image/*

Cela permet de s’assurer que les deux extrémités de la chaîne – le client et le serveur – peuvent accepter et envoyer les bons types de fichiers, et de mettre un terme définitif à l’erreur « HTTP 415 ».

Résumé

Les erreurs de site web sont souvent simples à corriger. Nous l’avons fait un certain nombre de fois sur le blog Kinsta, et la nature de la plateforme signifie que vous pouvez être prêt en peu de temps. Cependant,  « HTTP 415 » est différent, en ce sens qu’une solution est difficile à trouver si vous n’êtes pas un développeur.

La solution consiste à travailler avec les valeurs de l’en-tête Content-Type pour s’assurer que vous envoyez la bonne au serveur. Vous pouvez également avoir une simple faute de frappe. Cela ressemble à un mauvais moment, mais dans ce cas, elles peuvent être délicates à repérer, surtout si votre préoccupation porte sur les types de contenu que vous envoyez au serveur.

Bien que l’erreur « HTTP 415 » soit à vous de la corriger, pour d’autres problèmes avec votre site web, Kinsta est à votre disposition. Notre équipe de support se tient prête à vous aider à comprendre votre site dans les rares occasions où il ne parvient pas à se charger.