Jak naprawić błąd HTTP Status 204 (Brak zawartości)?
Opublikowany: 2024-01-26Co oznacza HTTP 204?
Kod odpowiedzi HTTP 204 na brak treści wskazuje, że serwer wykonał swoje zadanie, spełniając żądanie, tj. wysłane przez klienta, ale serwer nie znalazł żadnej treści, którą mógłby odesłać do klienta.
Innymi słowy, można to zrozumieć, ponieważ serwer zakończył żądanie, ale serwer nie ma informacji do odesłania, a klient nie musi opuszczać bieżącej strony.
Uwaga : kod stanu HTTP 204 jest domyślnie uznawany za buforowalny, co oznacza, że serwery proxy i klienci mogą swobodnie buforować odpowiedzi. W tym przypadku serwer może również zawierać nagłówek Etag.
Mogą zaistnieć przypadki, w których chcesz zastąpić to domyślne zachowanie. W związku z tym możesz dołączyć w odpowiedzi dodatkowe nagłówki buforowania HTTP.
Kod odpowiedzi HTTP 204 Odniesienia
- Symbol statusu HTTP Railsów:no_content
- Rdza http::StatusCode::NO_CONTENT
- Stała odpowiedź stanu HTTP Symfony::HTTP_NO_CONTENT
- Przejdź do stałej stanu HTTP http.StatusNoContent
- Python3.5+ Stała stanu 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
Jak rozwiązać problem z HTTP 204?
Jednak kod stanu HTTP 204 nie jest błędem i został celowo zaimplementowany, aby pokazać pomyślne żądanie, w którym serwer przetworzył żądanie klienta, ale nie miał treści do zwrócenia.
Czasami jednak może się to zdarzyć nieumyślnie lub może wystąpić w nieodpowiedniej sytuacji. Aby stawić czoła takiemu scenariuszowi, oto kilka niezbędnych metod, które należy rozważyć.
1. Sprawdź konfiguracje serwera
Jeśli źle skonfigurowałeś serwer, może to spowodować niezamierzoną odpowiedź HTTP 204. Dlatego należy sprawdzić, czy konfiguracja Twojego serwera, zwłaszcza związana z obsługą odpowiedzi HTTP, jest poprawnie dostosowana do wymagań Twojej aplikacji.
Rozważ także sprawdzenie dzienników błędów serwera w celu uzyskania szczegółowych informacji.
2. Skorzystaj z narzędzi SEO
Ponieważ już omawialiśmy, że jeśli adresy URL zwracają kod odpowiedzi HTTP 204, wyszukiwarki nie będą ich indeksować, możesz użyć różnych narzędzi SEO, takich jak SEMRUSH lub Screamfrog, aby znaleźć niezamierzony kod odpowiedzi HTTP 204 w swojej witrynie i upewnić się, że zamiast tego strona zwraca HTTP 200.
3. Przejrzyj logikę aplikacji
Upewnij się, że logika aplikacji jest lepiej zgodna z odpowiednim przypadkiem użycia protokołu HTTP 204. Powinna pasować do celu pokazania tego konkretnego kodu stanu.
Sprawdź, czy logika jest poprawna; na przykład, jeśli oczekiwana jest treść, ale wyświetlany jest protokół HTTP 204, sprawdź, dlaczego tak się dzieje. Ponadto udoskonalaj aplikację, aby zapewnić optymalną wygodę użytkowania.
4. Przekieruj użytkowników na stronę z treścią
Jeśli rozważasz usunięcie treści lub elementu i zwróci to użytkownikom kod odpowiedzi HTTP 204, może to mieć na nich negatywny wpływ. Użytkownicy mogą się zdezorientować, co ostatecznie pogarsza ogólne wrażenia z korzystania z witryny. To bardzo słaba rzecz z punktu widzenia SEO.
Zamiast pokazywać użytkownikom kod odpowiedzi 204, lepiej przekierować ich na bardziej użyteczną stronę lub przekazać jasny komunikat na tej samej stronie.
5. Zbadaj żądania API lub AJAX
Jeśli masz do czynienia z API lub żądaniami AJAX, upewnij się, że oczekiwania klienta i serwera są zgodne.
Jeśli klient oczekuje treści, ale zamiast tego otrzymuje kod HTTP 204, sprawdź, czy nie zostało to zrobione celowo, czy też jest z nim coś nie tak.
6. Upewnij się, że zastosowano odpowiednie kody stanu
Czasami z powodu pewnego zamieszania lub braku wiedzy na temat kodu stanu HTTP możesz używać innego kodu w różnych scenariuszach. Na przykład, jeśli klient oczekuje treści, ustaw go jako 200 OK lub inny odpowiedni odpowiedni kod, zamiast używać 204 Brak treści.
7. Rejestrowanie i monitorowanie
Spróbuj zaimplementować rejestrowanie i monitorowanie 204 odpowiedzi. Dzieje się tak dlatego, że może dostarczyć cennych informacji na temat zachowania aplikacji internetowych.
Pomaga także identyfikować wzorce, znajdować potencjalne problemy, a także pomaga wprowadzać ulepszenia wydajności i komfortu użytkowania.
8. Zapoznaj się z dokumentacją
Możesz także zapoznać się z dokumentacją usług, frameworków i bibliotek, z których korzystasz. Wystarczy przyjrzeć się im uważnie i sprawdzić, czy istnieją specjalne rozważania na temat najlepszych praktyk związanych z numerem 204, czy nie.
Nie zapominaj, że odpowiednie działania można podjąć tylko wtedy, gdy zostaną podjęte w sposób niezamierzony, a także zależy to od konkretnego kontekstu Twojej aplikacji.
Wpływ protokołu HTTP 204 Brak treści na SEO
Musisz także wiedzieć, jakie konsekwencje może mieć HTTP 204 dla SEO. Sprawdź to:
1. Problem z indeksowaniem : Ponieważ HTTP 204 nie udostępnia treści do indeksowania. Może to powodować problemy, jeśli próbujesz zaindeksować adres URL.
2. Marnowanie budżetu na indeksowanie : Możesz być zaskoczony, gdy dowiesz się, że każda wyszukiwarka przydziela budżet na indeksowanie każdej witrynie. Jeśli roboty wyszukiwarek nie będą w stanie znaleźć treści do wielokrotnego indeksowania, będzie to dla nich negatywny sygnał i może jeszcze bardziej zmniejszyć budżet indeksowania.
3. Złe doświadczenie użytkownika: Ponieważ doświadczenie użytkownika również odgrywa ważną rolę w SEO, napotkanie protokołu HTTP 204 może mieć na niego negatywny wpływ. Użytkownicy oczekujący treści mogą opuścić witrynę, zwiększając współczynnik odrzuceń i wysyłając negatywny sygnał do wyszukiwarek.
4. Zła błędna konfiguracja : Może się również zdarzyć, że serwer został nieumyślnie źle skonfigurowany, co skutkuje brakiem indeksowania lub rankingiem kluczowych stron.
Niektóre scenariusze użycia kodu odpowiedzi HTTP 204 Brak zawartości
Możesz się więc zastanawiać, czy odpowiedź HTTP 204 jest zamierzona, jakie byłyby możliwe scenariusze jej użycia? Cóż, w celach informacyjnych, sprawdź przypadki podane poniżej:
1. Przypadek użycia: USUŃ Żądanie
Aby lepiej to zrozumieć, należy rozważyć przykład,
Wniosek
DELETE https://domain.com/user/666 HTTP/1.1
Host: domain.com
Authorization: Bearer
Odpowiedź
HTTP/1.1 204 No Content
Date: Tue, 16 Jan 2024 12:00:00 GMT
Server: nginx
Z powyższego przykładu widać, że klient wysyła żądanie DELETE i zostało ono pomyślnie przetworzone, co oznacza usunięcie zasobu użytkownika o identyfikatorze 666 na serwerze domain.com, a serwer odpowiada kodem stanu 204.
2. Przypadek użycia: żądanie POST
Wniosek:
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>
Odpowiedź:
HTTP/1.1 204 No Content
W powyższym przykładzie widać, że klient wysyła do serwera żądanie danych XML i określa również, że zadanie musi zostać wykonane. W odpowiedzi serwer potwierdza żądanie i kończy zadanie.
Nie ma jednak potrzeby odsyłania czegokolwiek do klienta; dlatego używany jest kod stanu 204 Brak zawartości.
3. Przypadek użycia: żądanie PUT
Załóżmy, że korzystasz z CMS-a, w którym musisz dokonać aktualizacji w artykule na stronie internetowej. W tym celu należy wysłać żądanie PUT w celu aktualizacji treści o identyfikatorze 123 istniejącego artykułu. Ładunek żądania zawiera zaktualizowany tytuł i treść w formacie JSON.
Wniosek:
PUT /api/articles/123
Content-Type: application/json{
"title": "Updated Title",
"content": "Updated content for the article."
}
Odpowiedź:
HTTP/1.1 204 No Content
Date: Sat, 01 Jan 2024 12:00:00 GMT
W związku z tym serwer przetworzy żądanie i pomyślnie zaktualizuje artykuł, jednak zgodnie z projektem aplikacji, zamiast odpowiadać tradycyjnym komunikatem o powodzeniu, serwer odpowiada kodem stanu 204 No Content.
Podobnie protokołu HTTP 204 można również używać do kontrolowania zachowania buforowania, a także do dołączania pól nagłówka HTTP.
Różnica między HTTP 204 a 200
Wiele osób może pomylić kody odpowiedzi HTTP 204 i HTTP 200, co kończy się użyciem niewłaściwych kodów. Poniżej znajduje się ostateczna tabela porównawcza, która ma na celu wyjaśnienie Twoich wątpliwości w tym zakresie.
Aspekt | HTTP 204 Brak treści | HTTP 200 OK |
---|---|---|
Definicja | Serwer pomyślnie przetworzył żądanie, ale w treści odpowiedzi nie ma treści do wysłania. | Żądanie powiodło się, a serwer zwrócił żądane dane. |
Treść odpowiedzi | Treść odpowiedzi nie zawiera żadnej treści. | Odpowiedź zazwyczaj zawiera dane, takie jak HTML, JSON lub XML, w zależności od żądania. |
Przypadek użycia | Używane podczas potwierdzania udanego żądania, które nie wymaga przesyłania danych w odpowiedzi. | Używane w przypadku pomyślnych żądań, gdy serwer zwraca dane w celu spełnienia żądania klienta. |
Buforowanie | Odpowiedź nie jest przeznaczona do buforowania. | Odpowiedzi mogą być buforowane w oparciu o nagłówki pamięci podręcznej dostarczone przez serwer. |
Akcja klienta | Żadne działanie klienta nie jest potrzebne, służy jedynie do potwierdzenia klienta. | Klient może przetworzyć otrzymane dane lub na podstawie otrzymanej odpowiedzi podjąć dalsze działania. |
Przykłady | Żądanie DELETE, w przypadku którego nie trzeba przesyłać żadnych dodatkowych danych. Pomyślna aktualizacja, która nie wymaga treści odpowiedzi. | Ładowanie strony internetowej pomyślnie. Pobieranie danych użytkownika z bazy danych. |
Wspólne nagłówki | Typ zawartości: Nie dotyczy (brak treści). Kontrola pamięci podręcznej: Brak pamięci podręcznej, brak przechowywania (sugeruje, aby nie buforować). | Typ zawartości: Określa typ nośnika danych w treści odpowiedzi. Kontrola pamięci podręcznej: może obejmować dyrektywy dotyczące buforowania. |
Przekierowuje | Zazwyczaj przekierowanie nie jest potrzebne. | Przekierowanie może nastąpić, jeśli serwer lub zasób został przeniesiony (np. przy użyciu kodu stanu 3xx). |
Podobnie możesz pomylić kody odpowiedzi HTTP 204 i 404. Aby uzyskać wyjaśnienia w tym zakresie, sprawdź poniższą tabelę porównawczą.
Różnica między HTTP 204 a 404
Aspekt | HTTP 204 Brak treści | Nie znaleziono protokołu HTTP 404 |
---|---|---|
Definicja | Serwer pomyślnie przetworzył żądanie, ale w treści odpowiedzi nie ma treści do wysłania. | Nie można znaleźć żądanego zasobu na serwerze. |
Treść odpowiedzi | Treść odpowiedzi nie zawiera żadnej treści. | Treść odpowiedzi może zawierać przyjazny dla użytkownika komunikat wyjaśniający brak żądanego zasobu. |
Przypadek użycia | Używane podczas potwierdzania udanego żądania, które nie wymaga przesyłania danych w odpowiedzi. | Używane do wskazania, że żądany zasób jest niedostępny lub nie istnieje na serwerze. |
Akcja klienta | Klient zostaje poinformowany, że żądanie zostało zrealizowane, ale nie jest wymagane żadne dalsze działanie. | Klient może podjąć odpowiednie działania, takie jak powiadomienie użytkownika, przekierowanie lub próbę alternatywnego żądania. |
Przykłady | Żądanie DELETE, w przypadku którego nie trzeba przesyłać żadnych dodatkowych danych. Pomyślna aktualizacja, która nie wymaga treści odpowiedzi. | Próba uzyskania dostępu do nieistniejącego adresu URL. Zapytanie o zasób, który został usunięty lub nigdy nie istniał. |
Wspólne nagłówki | Typ zawartości: Nie dotyczy (brak treści). Kontrola pamięci podręcznej: Brak pamięci podręcznej, brak przechowywania (sugeruje, aby nie buforować). | Typ zawartości: Zależy od konfiguracji serwera. Kontrola pamięci podręcznej: Może to oznaczać, że nie należy buforować, jeśli zasób nie zostanie znaleziony w kolejnych żądaniach. |
Przekierowuje | Zazwyczaj przekierowanie nie jest potrzebne. | Przekierowanie może nastąpić, jeśli serwer lub zasób został przeniesiony (np. przy użyciu kodu stanu 3xx). |
Przeczytaj: Jak naprawić błąd 404 Nie znaleziono dla witryny WordPress i Androida?
Wniosek
Komunikat HTTP 204 brak treści to po prostu kod odpowiedzi, w przeciwieństwie do innych kodów błędów HTTP, który wskazuje, że serwer pomyślnie przetworzył żądanie, ale w odpowiedzi nie ma treści do wyświetlenia.
Może to brzmieć podobnie do błędu „Nie znaleziono błędu 404”, ale jest zupełnie inny i ma inny scenariusz użycia. Ale niezależnie od przypadku, jeśli zostanie niewłaściwie użyty lub źle skonfigurowany, nie zapominaj, że może to również potencjalnie zaszkodzić Twojemu SEO.
Często Zadawane Pytania
Co oznacza HTTP 204?
Kod odpowiedzi HTTP 204 na brak treści wskazuje, że serwer wykonał swoje zadanie, spełniając żądanie, tj. wysłane przez klienta, ale serwer nie znalazł żadnej treści, którą mógłby odesłać do klienta.
Jaka jest różnica między HTTP 304 a 204?
podczas gdy oba kody stanu 304 i 204 wskazują sytuacje, w których w treści odpowiedzi nie jest wysyłana żadna nowa treść. HTTP 304 koncentruje się bardziej na buforowaniu i żądaniach warunkowych, podczas gdy HTTP 204 jest ogólnym wskaźnikiem pomyślnego przetwarzania bez dodatkowej zawartości.
Co to jest usunięcie kodu 204?
Stan 204 No Content DELETE wskazuje, że serwer pomyślnie przetworzył żądanie usunięcia zasobu, ale w treści odpowiedzi nie ma żadnej dodatkowej treści do wysłania. Sygnalizuje, że usunięcie zakończyło się sukcesem i nie ma potrzeby zwracania żadnych danych w odpowiedzi.
Rahul Kumar jest entuzjastą sieci i specjalistą ds. strategii treści, specjalizującym się w WordPressie i hostingu. Dzięki wieloletniemu doświadczeniu i zaangażowaniu w bycie na bieżąco z trendami branżowymi tworzy skuteczne strategie online, które generują ruch, zwiększają zaangażowanie i zwiększają konwersję. Dbałość Rahula o szczegóły i umiejętność tworzenia atrakcyjnych treści czyni go cennym nabytkiem dla każdej marki chcącej poprawić swoją obecność w Internecie.