Come correggere l'errore Stato HTTP 204 (nessun contenuto)?

Pubblicato: 2024-01-26

Sommario
Cosa significa HTTP 204?
Riferimenti al codice di risposta HTTP 204
Come risolvere il problema HTTP 204?
Impatto di HTTP 204 Nessun contenuto sulla SEO
Alcuni scenari di utilizzo del codice di risposta HTTP 204 No Content
Differenza tra HTTP 204 e 200
Differenza tra HTTP 204 e 404
Conclusione
Domande frequenti

Cosa significa HTTP 204?

Il codice di risposta HTTP 204 no content indica che il server ha svolto il proprio lavoro soddisfacendo la richiesta, ovvero inviata dal client, ma il server non ha trovato alcun contenuto da rispedire al client.

In altre parole, puoi capirlo come il server ha completato la richiesta ma non ha informazioni da restituire e il client non ha bisogno di uscire dalla sua pagina corrente.

Nota : il codice di stato HTTP 204 è considerato memorizzabile nella cache per impostazione predefinita, il che significa che i server e i client proxy sono liberi di memorizzare nella cache le risposte. Inoltre, in questo caso il server potrebbe includere un'intestazione Etag.

Potrebbero esserci casi in cui desideri sovrascrivere questo comportamento predefinito, a questo proposito puoi includere ulteriori intestazioni di memorizzazione nella cache HTTP nella risposta.


Riferimenti al codice di risposta HTTP 204

  • Simbolo di stato HTTP su rotaie: no_content
  • Ruggine http::StatusCode::NO_CONTENT
  • Risposta costante dello stato HTTP di Symfony::HTTP_NO_CONTENT
  • Vai Costante di stato HTTP http.StatusNoContent
  • Python3.5+ Costante di stato HTTP http.HTTPStatus.NO_CONTENT
  • .NET HttpStatusCode.NoContent
  • Java java.net.HttpURLConnection.HTTP_NO_CONTENT
  • Apache HttpComponents Core org.apache.hc.core5.http.HttpStatus.SC_NO_CONTENT
  • Angular @angular/common/http/HttpStatusCode.NoContent

Come risolvere il problema HTTP 204?

Tuttavia, il codice di stato HTTP 204 non è un errore ed è stato implementato intenzionalmente per mostrare una richiesta riuscita in cui il server elaborava la richiesta del client ma non aveva contenuto da restituire.

Ma a volte involontariamente può attivarsi all’improvviso o potresti vederlo in una situazione non appropriata. Per affrontare uno scenario del genere, ecco alcuni dei metodi necessari che dovresti considerare.

1. Controllare le configurazioni del server

Se hai configurato male il tuo server, ciò può portare a una risposta HTTP 204 involontaria. Pertanto, è necessario verificare che la configurazione del server, in particolare quelle relative alla gestione delle risposte HTTP, sia correttamente allineata ai requisiti della propria applicazione.

Inoltre, valuta la possibilità di controllare i registri degli errori del server per dettagli approfonditi.

2. Utilizza gli strumenti SEO

Poiché abbiamo già discusso del fatto che se gli URL restituiscono un codice di risposta HTTP 204, i motori di ricerca non li indicizzeranno, puoi utilizzare vari strumenti SEO come SEMRUSH o Screamfrog per scoprire il codice di risposta HTTP 204 involontario sul tuo sito web e assicurarti la pagina restituisce invece HTTP 200.

3. Rivedi la logica dell'applicazione

Assicurati che la logica della tua applicazione si allinei meglio al caso d'uso appropriato per HTTP 204. Dovrebbe essere adatto allo scopo di mostrare questo particolare codice di stato.

Controlla se la logica è corretta; ad esempio, se è previsto il contenuto ma viene visualizzato HTTP 204, indagare sul motivo per cui si verifica. Inoltre, continua a perfezionare l'applicazione per un'esperienza utente ottimale.

4. Reindirizzare gli utenti alla pagina Contenuti

Se stai pensando di eliminare un contenuto o un elemento e restituisce un codice di risposta HTTP 204 agli utenti, ciò può avere un impatto negativo su di loro. Gli utenti potrebbero confondersi, il che alla fine riduce l'esperienza complessiva dell'utente del sito web. Questa è una cosa molto negativa dal punto di vista SEO.

Invece di mostrare agli utenti un codice di risposta 204, è meglio reindirizzarli su una pagina più utile o trasmettere un messaggio chiaro sulla stessa pagina.

5. Esaminare le richieste API o AJAX

Se hai a che fare con API o richieste AJAX, assicurati che le aspettative del client e del server siano allineate.

Se il client si aspetta del contenuto ma riceve invece un HTTP 204, controlla se è stato fatto intenzionalmente o c'è qualcosa di sbagliato in esso.

6. Garantire l'utilizzo dei codici di stato appropriati

A volte, a causa di una sorta di confusione o della mancanza di conoscenza del codice di stato HTTP, potresti utilizzare un codice diverso per scenari diversi. Ad esempio, se il cliente si aspetta del contenuto, impostalo come 200 OK o altro codice adatto anziché utilizzare 204 Nessun contenuto.

7. Registrazione e monitoraggio

Prova a implementare la registrazione e il monitoraggio per 204 risposte. È perché può fornirti informazioni preziose sul comportamento della tua applicazione web.

E ti aiuta anche a identificare modelli, trovare potenziali problemi e anche a migliorare le prestazioni e l'esperienza dell'utente.

8. Consultare la documentazione

Inoltre, puoi consultare la documentazione dei servizi, dei framework o delle librerie che utilizzi. Basta guardarli attentamente e vedere se sono menzionate o meno considerazioni speciali sulle migliori pratiche relative a 204.

Non dimenticare che l'azione appropriata può essere intrapresa solo se viene eseguita involontariamente e dipende anche dal contesto specifico della tua applicazione.


Impatto di HTTP 204 Nessun contenuto sulla SEO

Devi anche sapere quali implicazioni può avere HTTP 204 sulla SEO. Controllalo:

1. Problema nell'indicizzazione : poiché Http 204 non fornisce contenuti per l'indicizzazione. Può causare problemi se stai tentando di indicizzare un URL.

2. Spreco di budget di scansione : potresti essere sorpreso di sapere che ogni motore di ricerca assegna un budget di scansione per ciascun sito web. Se i bot dei motori di ricerca non riescono a trovare alcun contenuto da indicizzare ripetutamente, ciò darà loro un segnale negativo e può ridurre ulteriormente il budget di scansione.

3. Scarsa esperienza utente: poiché anche l’esperienza utente gioca un fattore importante nel SEO, incontrare un HTTP 204 può avere un impatto negativo su di esso. Gli utenti che si aspettano contenuti potrebbero abbandonare il sito, aumentando la frequenza di rimbalzo e inviando un segnale negativo ai motori di ricerca.

4. Configurazione errata : può anche essere possibile che involontariamente il server sia stato configurato in modo inadeguato, il che si traduce in Noindexing o classificazione delle pagine chiave.


Alcuni scenari di utilizzo del codice di risposta HTTP 204 No Content

Quindi, potresti anche chiederti, se la risposta HTTP 204 è intenzionale, quali sarebbero i possibili scenari di utilizzo? Bene, per tuo riferimento, controlla i casi indicati di seguito:

1. Caso d'uso: richiesta DELETE

Per una migliore comprensione qui è necessario considerare un esempio,

Richiesta

DELETE https://domain.com/user/666 HTTP/1.1
Host: domain.com
Authorization: Bearer

Risposta

HTTP/1.1 204 No Content
Date: Tue, 16 Jan 2024 12:00:00 GMT
Server: nginx

Dall'esempio sopra puoi vedere che un client sta inviando una richiesta DELETE ed è stata elaborata con successo, indicando la rimozione della risorsa utente con ID 666 sul server domain.com e il server risponde con un codice di stato 204.

2. Caso d'uso: richiesta POST

Richiesta:

POST /job HTTP/1.1
Host: www.domain.re
Content-Type: application/xml
Content-Length: 60
<?xml version="1.0">
<job>
<id>125</id>
<task>G01</task>
</job>

Risposta:

HTTP/1.1 204 No Content

Nell'esempio precedente, puoi vedere che un client invia una richiesta di dati XML al server e definisce anche che il lavoro deve essere completato. In risposta a ciò, il server riconosce la richiesta e completa il lavoro.

Tuttavia, non è necessario restituire nulla al cliente; pertanto, viene utilizzato il codice di stato 204 No Content.

3. Caso d'uso: richiesta PUT

Supponiamo che tu stia utilizzando un CMS in cui devi apportare un aggiornamento in un articolo sul sito web. Per questo, devi inviare una richiesta PUT per aggiornare il contenuto con ID 123 di un articolo esistente. Il payload della richiesta include il titolo e il contenuto aggiornati in formato JSON.

Richiesta:

PUT /api/articles/123
Content-Type: application/json{
"title": "Updated Title",
"content": "Updated content for the article."
}

Risposta:

HTTP/1.1 204 No Content
Date: Sat, 01 Jan 2024 12:00:00 GMT

A questo proposito, il server elaborerà la richiesta e aggiornerà con successo l'articolo, ma secondo la progettazione dell'applicazione, invece di rispondere con un tradizionale messaggio di successo, il server risponde con un codice di stato 204 No Content.

Allo stesso modo, HTTP 204 può essere utilizzato anche per controllare il comportamento della memorizzazione nella cache e l'inclusione dei campi di intestazione HTTP.


Differenza tra HTTP 204 e 200

Molte persone potrebbero essere confuse tra i codici di risposta HTTP 204 e HTTP 200 e finire per utilizzare codici inappropriati. Pertanto, di seguito è riportata una tabella comparativa definitiva fornita per chiarire i tuoi dubbi al riguardo.

Aspetto HTTP 204 Nessun contenuto HTTP200OK
Definizione Il server ha elaborato correttamente la richiesta, ma non è presente contenuto da inviare nel corpo della risposta. La richiesta ha avuto successo e il server ha restituito i dati richiesti.
Corpo di risposta Nessun contenuto è incluso nel corpo della risposta. La risposta in genere include dati, ad esempio HTML, JSON o XML, a seconda della richiesta.
Caso d'uso Utilizzato per riconoscere una richiesta andata a buon fine che non richiede la trasmissione di dati nella risposta. Utilizzato per richieste riuscite in cui il server restituisce dati per soddisfare la richiesta del client.
Memorizzazione nella cache La risposta non è destinata alla memorizzazione nella cache. Le risposte possono essere memorizzate nella cache in base alle intestazioni della cache fornite dal server.
Azione del cliente Non è necessaria alcuna azione del client, serve solo per riconoscere il client. Il cliente può elaborare i dati ricevuti o intraprendere ulteriori azioni in base alla risposta.
Esempi Una richiesta DELETE in cui non è necessario inviare dati aggiuntivi.
Un aggiornamento riuscito che non richiede un corpo di risposta.
Caricamento di una pagina web riuscito. Recupero dei dettagli dell'utente da un database.
Intestazioni comuni Tipo di contenuto: non applicabile (nessun contenuto). Controllo cache: No-cache, no-store (suggerisce di non memorizzare nella cache). Content-Type: specifica il tipo di supporto dei dati nel corpo della risposta.
Cache-Control: può includere direttive per la memorizzazione nella cache.
Reindirizzamenti In genere non è necessario alcun reindirizzamento. Il reindirizzamento può verificarsi se il server o la risorsa sono stati spostati (ad esempio, utilizzando un codice di stato 3xx).
HTTP 204 contro 200

Allo stesso modo, potresti essere confuso tra i codici di risposta HTTP 204 e 404. Controlla la tabella comparativa qui sotto per chiarimenti a questo proposito.


Differenza tra HTTP 204 e 404

Aspetto HTTP 204 Nessun contenuto HTTP 404 non trovato
Definizione Il server ha elaborato correttamente la richiesta, ma non è presente contenuto da inviare nel corpo della risposta. Impossibile trovare la risorsa richiesta sul server.
Corpo di risposta Nessun contenuto è incluso nel corpo della risposta. Il corpo della risposta può contenere un messaggio intuitivo che spiega l'assenza della risorsa richiesta.
Caso d'uso Utilizzato per riconoscere una richiesta andata a buon fine che non richiede la trasmissione di dati nella risposta. Utilizzato per indicare che la risorsa richiesta non è disponibile o non esiste sul server.
Azione del cliente Il client viene informato che la richiesta ha avuto esito positivo, ma non sono necessarie ulteriori azioni. Il client può intraprendere l'azione appropriata, ad esempio avvisare l'utente, reindirizzare o tentare una richiesta alternativa.
Esempi Una richiesta DELETE in cui non è necessario inviare dati aggiuntivi.
Un aggiornamento riuscito che non richiede un corpo di risposta.
Tentativo di accesso a un URL inesistente.
Ricerca di una risorsa che è stata eliminata o non è mai esistita.
Intestazioni comuni Tipo di contenuto: non applicabile (nessun contenuto).
Controllo cache: No-cache, no-store (suggerisce di non memorizzare nella cache).
Tipo di contenuto: dipende dalla configurazione del server.
Cache-Control: potrebbe indicare di non memorizzare nella cache se la risorsa non verrà trovata nelle richieste successive.
Reindirizzamenti In genere non è necessario alcun reindirizzamento. Il reindirizzamento può verificarsi se il server o la risorsa sono stati spostati (ad esempio, utilizzando un codice di stato 3xx).
HTTP 204 contro 404

Leggi: Come risolvere l'errore 404 Not Found per il sito WordPress e Android?


Conclusione

L'HTTP 204 no content è solo un codice di risposta a differenza di altri codici di errore HTTP, che indica che il server ha elaborato con successo la richiesta ma non c'è contenuto da mostrare nella risposta.

Potrebbe sembrare simile all'errore 404 Errore non trovato, ma è completamente diverso e presenta uno scenario di utilizzo diverso. Ma in ogni caso, se viene utilizzato in modo improprio o configurato in modo errato, non dimenticare che può anche potenzialmente danneggiare il tuo SEO.


Domande frequenti

Cosa significa HTTP 204?

Il codice di risposta HTTP 204 no content indica che il server ha svolto il proprio lavoro soddisfacendo la richiesta, ovvero inviata dal client, ma il server non ha trovato alcun contenuto da rispedire al client.

Qual è la differenza tra HTTP 304 e 204?

mentre entrambi i codici di stato 304 e 204 indicano situazioni in cui non viene inviato nuovo contenuto nel corpo della risposta. HTTP 304 è più focalizzato sulla memorizzazione nella cache e sulle richieste condizionali, mentre HTTP 204 è un'indicazione generale di un'elaborazione riuscita senza contenuto aggiuntivo.

Cos'è l'eliminazione del codice 204?

Uno stato 204 No Content DELETE indica che il server ha elaborato con successo la richiesta di eliminazione di una risorsa, ma non è presente alcun contenuto aggiuntivo da inviare nel corpo della risposta. Segnala che l'eliminazione ha avuto successo e non è necessario restituire alcun dato nella risposta.