Enquanto usar imagens, vídeos e GIFs não era típico nos primeiros dias da web, nós agora esperamos que um site ofereça visuais atraentes, bem como textos informativos. Também não é nenhuma surpresa que quando a comunicação entre o navegador e o servidor der para o torto devido a um descompasso na mídia, você verá um erro. Neste caso, o erro “HTTP 415”.

Como a mídia é quase um pré-requisito da web moderna, ver um erro relacionado a ela significa que você vai precisar de uma correção, rapidamente. No entanto, ao contrário de outras correções de erros – especialmente para sites WordPress – esta questão é um cookie difícil. Você pode precisar de algum conhecimento de codificação para resolver este problema, mas isto é algo para mais tarde.

Confira nosso guia de vídeo para corrigir o erro 415

Para este post, vamos investigar o erro “HTTP 415” e falar sobre o que o causa. A partir daí, nós discutiremos como você o consertaria.

O que é o erro HTTP 415

O erro “HTTP 415” é um dos muitos códigos de status 4XX. Se você entender que ele se aproxima com erros como um 404, você começará a entender o que está acontecendo.

Em resumo, todos os 4XX erros lidam com algo que está faltando e que o cliente ou o servidor precisa. O nome completo do erro – um “415 Unsupported Media Type” – dá o jogo. O servidor está recebendo um tipo de arquivo de mídia que ele não reconhece ou não pode aceitar.

Sob a maioria das circunstâncias, você verá o erro “HTTP 415” quando você usa uma interface de programação de aplicação (API). É um problema do lado do servidor, e a seguir, discutiremos porque isso acontece em primeiro lugar.

Porque acontece o erro HTTP 415

Independentemente do que você chama – o erro “HTTP 415”, o erro “415 Unsupported Media Type” – significa que o servidor se recusa a aceitar um pedido do navegador. Isto será porque o que quer que o navegador envie (a carga útil) não está no formato correto.

É uma questão similar ao erro “422 Unprocessable Entity“, pois ambos lidam com os dados errados que batem no servidor, e o último se passa. Vale ressaltar também que há uma distinção entre os dados que o navegador envia, e o que o servidor recebe. Eles podem parecer ser os mesmos, mas há uma diferença.

Por exemplo, uma estratégia geral de captura de erros impedirá um usuário de pegar um tipo de arquivo não reconhecido e carregá-lo através de uma interface que só aceita PNGs. No entanto, se você não especificar os tipos exatos de mídia que um servidor pode processar, isso acionaria um erro na parte de trás. No front end, um usuário pode não ver nada. Os usuários do WordPress recebem uma notificação na tela de administração:

O erro de tipo de arquivo não permitido no WordPress.
O erro de tipo de arquivo não permitido no WordPress.

A boa notícia é que o WordPress tem uma infraestrutura permissiva – pense nos diferentes tipos de arquivos que você pode enviar para a Biblioteca de Mídia, por exemplo.

Mesmo assim, este é um problema a nível de desenvolvedor e não de usuário. Como tal, nós vamos mergulhar no que as correções podem ser a seguir.

Como corrigir o erro HTTP 415

Recapitulando, o erro “HTTP 415” diz que o servidor não aceita um tipo de arquivo porque ele não suporta essa carga útil. Isto significa que há um problema dentro do código PHP subjacente que precisa de uma correção.

Neste ponto, se você não é o desenvolvedor do site ou tema, e você não tem nenhuma habilidade de codificação, você provavelmente vai querer contatar alguém com experiência. Pesquisar nos arquivos do seu tema pode causar um problema.

Entretanto, a documentação do Mozilla sobre o erro lhe dá duas pistas para começar sua busca – dois “cabeçalhos de representação”: Content-Type, e Content-Encoding.

Como funcionam os cabeçalhos tipo de conteúdo e de codificação de conteúdo

O cabeçalho Content-Type fornece o recurso ao cliente antes que qualquer codificação aconteça. Ele indica o tipo de mídia original do recurso. Por exemplo, o cabeçalho Content-Type:


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

Content-Type: image/jpeg;

Em contraste, Content-Encoding é uma lista de todas as codificações que a carga útil (ou seja, sua mídia) tem, que é um indicador de como o arquivo deve ser decodificado a fim de obter a carga útil original.


Content-Encoding: gzip

Content-Encoding: br

Como você pode perceber, a compressão de arquivos é uma maneira comum de codificar dados. Isto não é um problema em teoria, mas será se você não codificar isto nos arquivos relevantes para o seu tema ou plugin.

Como encontrar uma correção para o código do erro HTTP 415

Dado o exposto acima, você terá três caminhos a explorar se você descobrir um erro HTTP 415 – todos eles relacionados ao seu código PHP:

  • Você vai querer garantir que você envie o valor correto do cabeçalho do Content-Type.
  • Você também vai querer ter certeza de que o servidor pode processar o que você especificar para o cabeçalho do Content-Type.
  • Verifique sobre o que o servidor pode processar através do cabeçalho Accept.

Você não necessariamente fará isso dentro dos arquivos principais, embora você possa fazer isso como parte de uma solicitação REST API. Por exemplo, um usuário de Stack Overflow teve esse exato problema ao usar PHP puro sobre cURL para fazer uma requisição de API.

Há dois lugares para procurar. Primeiro, especifique os tipos de arquivo corretos dentro do cabeçalho Content-Type:


$headers = array (

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

   …

Segundo, este usuário tinha um erro de digitação ao declarar uma chave de cabeçalho inválida usando a função wp_remote_post():


$arg = array (

    'header' => $headers,

    …

Porque o “cabeçalho” perde um “s”, ele lançaria o erro “HTTP 415”. Entretanto, você também vai querer ter certeza de que o cliente pode aceitar os tipos de arquivo corretos também. Você vai fazer isso através de outro cabeçalho: Aceitar. Por exemplo:


Accept: text/html

Accept: image/*

Isso garante que ambas as extremidades da cadeia – o lado cliente e o lado servidor – possam aceitar e enviar os tipos de arquivo corretos, e colocar um ponto final no erro “HTTP 415” para sempre.

Resumo

Os erros do site são muitas vezes simples de corrigir. Nós fizemos isso várias vezes no blog Kinsta, e a natureza da plataforma significa que você pode estar pronto para o rock and roll em pouco tempo. No entanto, o “HTTP 415” é diferente, na medida em que uma correção é difícil de ser feita se você não for um desenvolvedor.

A solução é trabalhar com os valores do cabeçalho Content-Type para garantir que você envie o correto para o servidor. Você também pode ter um simples erro de digitação. Este parece ser um momento “doh”, mas neste caso, eles podem ser difíceis de identificar, especialmente se sua preocupação é com os tipos de conteúdo que você envia para o servidor.

Enquanto o erro “HTTP 415” é seu para corrigir, para outros problemas com o seu site, Kinsta está de plantão. Nós temos a nossa equipe de suporte a postos para ajudá-lo a entender o seu site nas raras ocasiões em que ele falha em carregar.