Każdy użytkownik sieci Internet spotykał się błędami HTTP chociaż raz przy odwiedzaniu stron internetowych. Istnieje wiele powodów problemów z dostępnością strony, strona mogła zmienić link (błąd 404) lub powstał problem z serwerem lub hostingiem (błąd 500). Serwer na każde takie zapytanie o stronę, obraz lub plik wysyła kod odpowiedzi HTTP, jest to kod trzycyfrowy. Takie kody są zgrupowane do 5 różnych podklas.
- Czym są błędy HTTP?
- Błąd 500 (Internal Server Error, Wewnętrzny Błąd Serwera) na hostingu
- Błąd 502 - Bad Gateway
- Błąd 503 - Service Unavailable
- Błąd 504 - Gateway Timeout
- Błąd 507 - Insufficient Storage
- Błąd 508 - Resource Limit is Reached
- Błąd 509 - Bandwidth Limit Exceeded
- Błąd 403 - Forbidden
- Biała strona
- Przekroczenie czasu oczekiwania na odpowiedź serwera lub Połączenie zostało zresetowane
- Podsumowanie
Czym są błędy HTTP?
Błąd HTTP może powstać w wyniku niepoprawnej lub nieoczekiwanej odpowiedzi serwera lub strony przez przeglądarkę lub inny program, który łączy się z serwerem zdalnym lub hostingiem. Kod odpowiedzi informuje o tym w jaki sposób zapytanie został przetworzone. Z kodu odpowiedzi możemy sprawdzić gdzie jest problem lub po czyjej stronie należy szukać przyczynę komunikatu z problemem.
Istnieją następne klasy błędów oraz Kodów HTTP w zależności od pierwszej liczby:
- 1xx: Informacyjne
- 2xx: Powodzenia w nawiązaniu połączenia
- 3xx: Przekierowania
- 4xx: Błędy po stronie użytkownika
- 5xx: Błędy po stronie serwera, hostingu
Błąd 500 (Internal Server Error, Wewnętrzny Błąd Serwera) na hostingu
Błędy systemu CMS
Lista najbardziej rozpowszechnionych przyczyn pojawienia się błędów na stronach opartych o CMS:
- brak włączonego modułu w konfiguracji PHP (mysqli, ioncube) na hostingu lub niezgodność wersji PHP. W cPanel moduły znajdują się w “Wybór wersji PHP”, należy sprawdzić minimalną i polecaną wersję PHP do CMS oraz instalowanej wtyczki;
- niekompatybilność wtyczki z zainstalowaną wersją PHP;
- zmiana linku strony (URL) bez aktualizacji na innych stronach, nawigacjach;
- błąd w składni skryptu po aktualizacji lub edycji;
- domena nie została odnowiona i wygasła;
- osiągnięty limit w przydzielonych zasobach na hostingu;
- problem z uprawnieniami na plikach lub folderach;
- zapora sieciowa hostingu zablokowała IP.
Błędy w skryptach
Przyczyna błędów powstałych w skryptach może być związana z użyciem funkcji, która jest niedostępna w wybranej wersji PHP, brakiem modułu PHP, problem ze składnią pliku (brak nawiasu lub średnika) lub niedostępność pliku/biblioteki zdalnej. Więcej informacji o tych błędach można uzyskać z plików access.log oraz error.log, które są automatycznie tworzone na hostingu w przypadku pojawienia się błędów. Na serwerach z cPanel lub DirectAdmin można włączyć opcje display_errors, która będzie wyświetlała wszystkie komunikaty od razu na stronie w przeglądarce.
Błędy przy przekroczeniu limitów czasu na przetwarzanie zapytań
Na hostingach współdzielonych (na serwerach z kilkunastoma użytkownikami) są ustawione limity na czas, przez który skrypt może być aktywny, maksymalna pamięć podręczna, która może być wykorzystana przez konto lub skrypty PHP oraz maksymalna ilość jednoczesnych procesów. Jeżeli któryś z limitów zostanie osiągnięty – serwer (hosting) wstrzyma aktywne procesy i strona przez chwilę może wyświetlać komunikat że Został przekroczony limit czasu na przetwarzanie zapytania.
Błąd 502 – Bad Gateway
Kod odpowiedzi 502 albo inaczej błąd Bad Gateway – oznacza że serwer (lub serwer proxy) nie otrzymuje poprawnej odpowiedzi od serwerów przetwarzających zapytania lub dane są niepełne. Jeżeli odpytywany serwer występuje jako serwer “reverse proxy” jako np. “load balancer”, należy sprawdzić następne rzeczy:
- czy serwery przetwarzające zapytania lub wykonujące operacje na danych (gdzie zapytania HTTP są przekierowywane) są włączone i usługi są uruchomione;
- serwer z reverse proxy jest poprawnie skonfigurowany;
- czy serwery z danymi oraz “reverse proxy” mogą nawiązywać połączenia między sobą, należy sprawdzić ustawienia zapory sieciowej oraz otwarte/zablokowane porty;
- czy socket obsługujący aplikacje jest uruchomiony na właściwym porcie oraz lokalizacji, i czy posiada wszystkie potrzebne uprawnienia.
Rozwiązaniem tego problemu może również być wyczyszczenie pamięci podręcznej przeglądarki lub ponowna próba na połączenie się ze stroną za kilka godzin.
Błąd 503 – Service Unavailable
Kod/błąd 503 lub 503 Usługa niedostępna (Service Unavailable) oznacza że serwer lub hosting jest przeciążony lub trwają prace serwisowe/modernizacyjne. Czyli oznacza że serwer musi wrócić do normy wkrótce, jeżeli jednak na serwerze nie są przeprowadzane żadne prace – to może oznaczać że zabrakło pamięci RAM lub procesora do przetwarzania wszystkich przychodzących połączeń. Częste pojawienie się tego błędu może oznaczać że strona wymaga więcej zasobów serwera, lub lepszej ochrony od ataków.
Błąd 504 – Gateway Timeout
Komunikat z błędem 504 – Przekroczenie czasu bramki oznacza że upłynął maksymalny limit czasu na oczekiwanie odpowiedzi od serwera, który również może się łączyć z innymi zewnętrznymi serwerami. Zwykłe to może być spowodowane złym połączeniem sieciowym pomiędzy serwerami, brakiem wolnych zasobów na serwerze lub ustawienia limitów na przetwarzanie zapytań są za niskie.
Błąd 507 – Insufficient Storage
Kod 507 z informacją o Braku miejsca pojawia się przy zapytaniach typu POST lub PUT do serwera z dużym plikiem, który przekracza ustawione limity na serwerze lub dostępne zasoby (pamięć RAM lub dysk).
W klientach email to może oznaczać że wiadomość jest za duża i trzeba usunąć pliki z niej lub podzielić na kilka.
Błąd 508 – Resource Limit is Reached
Przyczyną pojawienia się błędu 508 o Przekroczeniu przydzielonych limitów może być zbyt duże wykorzystanie zasobów serwera współdzielonego lub hostingu przez stronę lub konto hostingowe. Jeżeli taki komunikat zaczyna często się pojawiać – należy przejść na wyższy pakiet hostingowy (z większym limitem na RAM, ilość jednoczesnych procesów i wykorzystanie procesora) lub dokonać migracji na wydajniejszy serwer wirtualny VPS.
W przypadku wykorzystania systemu CMS (WordPress lub Joomla) polecamy przeanalizować zainstalowane wtyczki i usunąć niepotrzebne, lub włączyć tworzenie pamięci podręcznej (w tym artykule opisaliśmy jak przyśpieszyć WP).
Błąd 509 – Bandwidth Limit Exceeded
Może występować przy wykorzystaniu pakietów hostingowych z limitem na transfer danych, jeżeli pojawił się błąd 509 – należy zmienić pakiet na wyższy lub wybrać hosting bez limitów na transfer.
Błąd 403 – Forbidden
Komunikat 403 Forbidden – oznacza że zapytanie do strony i serwera zostało przetworzone poprawnie, jednak brakuje pozwoleń lub dostępów do odpytywanego pliku czy strony.
Pierwszą przyczyną mogą być ograniczenia w pliku .htaccess dotyczące adresów IP lub stron, na które użytkownik może wejść. W .htaccess możemy skonfigurować plik, z listą użytkowników oraz haseł z którymi odwiedzający będzie mógł otworzyć stronę.
Kolejną przyczyną może być brak pliku index.html lub index.php w folderze głównym domeny. Jeżeli opcja wyświetlenia listy plików oraz folderów jest wyłączona na serwerze – zobaczymy komunikat z Błędem 403. Możliwość wylistowania folderów i plików można włączyć w ustawieniach serwerach www lub w pliku .htaccess.
Biała strona
Pojawienie się białej strony zamiast strony www – może oznaczać że wystąpił jakiś błąd po stronie serwera, ale wyświetlenie informacji o błędzie zostało wyłączone, lub plik “index” jest po prostu pusty.
Aby włączyć wyświetlenie pojawiających się błędów oraz komunikatów należy włączyć odpowiednie opcje w panelach administracyjnych na hostingach.
cPanel:
Directadmin:
W opcjach error_reporting możemy zdefiniować jaki rodzaj błędów powinien się wyświetlać użytkownikowi lub powinien być zapisywany do pliku error_log.
Przekroczenie czasu oczekiwania na odpowiedź serwera lub Połączenie zostało zresetowane
Generalnie komunikat z taką informacją oznacza że połączenie z serwerem (stroną) udało się nawiązać, ale nie można pobrać żadnej odpowiedzi lub danych. Przeglądarka internetowa oczekuje na odpowiedź przez określony czas i w razie braku informacji zwrotnej wyświetla komunikat ERR_CONNECTION_TIMED_OUT.
Istnieje kilka powodów powstania takiego problemu:
- problem z połączeniem internetowym na naszym urządzeniu.
- blokada naszego urządzenia lub adresu IP przez Zaporę sieciową serwera.
- chwilowe problemy ze stroną lub podanie niepoprawnego adresu.
- problem z serwerem VPN lub proxy, jeżeli jest zainstalowany na naszym komputerze.
- wolne albo przeciążone połączenie internetowe.
- przekierowanie w hosts na zły adres serwera (Jak przekierować stronę lokalnie).
Jak naprawić błąd serwera: 500 Internal Server Error?
Podsumowanie
Postaraliśmy się opisać najbardziej popularne i najczęściej występujące komunikaty o błędach w połączeniach HTTP wraz z ich kodami. Naprawienie ich znacznie może zwiększyć wygodę korzystania ze strony oraz pozycje w SEO dla wyszukiwarek.
Istnieje również możliwość utworzenia indywidualnych stron do zarządzania informacją o błędzie HTTP. Na przykład cPanel pozwala w panelu administracyjnym zmienić domyślne strony z komunikatami aby użytkownik był pewien że administrator otrzymał informacje że taka sytuacja się pojawiła i podejmie próby ją naprawić.