Tag: http

tablica ze statusami błędów http

Tablica ze statusami błędów HTTP + tłumaczenie po polsku oraz wpisy do pliku .htaccess z tymi błędami:

//Tablica ze statusami błędów by tosiek ( https://tosiek.pl/ )
$errors = array(
	//Client errors - po stronie klienta
	'400'=>array('Bad Request','Błędne żądanie'),
	'401'=>array('Unauthorized','Brak autoryzacji'),
	'402'=>array('Payment Required','Wymagana opłata'),
	'403'=>array('Forbidden','Dostęp zabroniony'),
	'404'=>array('Not Found','Nie znaleziono'),
	'405'=>array('Method Not Allowed','Metoda nie dozwolona'),
	'406'=>array('Not Acceptable','Brak akceptacji'),
	'407'=>array('Proxy Authentication Required','Wymagana autoryzacja proxy'),
	'408'=>array('Request Time-out','Zapytanie przekroczyło czas oczekiwania'),
	'409'=>array('Conflict','Konflikt'),
	'410'=>array('Gone','Zniknął'),
	'411'=>array('Length Required','Wymagana długość'),
	'412'=>array('Precondition Failed','Nie spełniono warunku wstępnego'),
	'413'=>array('Request Entity Too Large','Zbyt duże żądanie'),
	'414'=>array('Request-URI Too Large','Adres URI zapytania jest zbyt długi'),
	'415'=>array('Unsupported Media Type','Niewspierany typ medium'),
	'416'=>array('Requested range not satisfiable','Żądany zakres nie obsługiwany'),
	'417'=>array('Expectation Failed','Niepowodzenie oczekiwania'),
	//Server errors - po stronie serwera
	'500'=>array('Internal Server Error','Wewnętrzny błąd serwera'),
	'501'=>array('Not Implemented','Niezaimplementowane'),
	'502'=>array('Bad Gateway','Błąd bramy'),
	'503'=>array('Service Unavailable','Usługa niedostępna'),
	'504'=>array('Gateway Time-out','Przekroczony czas oczekiwania bramy'),
	'505'=>array('HTTP Version not supported','Brak wsparcia dla tej wersji HTTP'),
	'509'=>array('Bandwidth Limit Exceeded','Przekroczono limit transferu'),
);

Do tablicy odnosimy się:
$errors[numer_błędu][jezyk_opisu]
(gdzie jezyk_opisu to: 1 – polski, 0 – angielski który jest także nagłówkiem dla przeglądarki)

Więc dla polskiego opisu dla błędu 404:
$errors[404][‘1’]

Dla angielskiego opisu dla błędu 404: (angielski opis jest takze nagłówkiem wysyłanym do przeglądarki)
$errors[404][‘0’]

Wpisy do pliku .htaccess ze wszystkimi wyżej wymienionymi błędami HTTP:

#Bledy numeryczne na error.php
RewriteRule ^([0-9][0-9][0-9])+$ /errorek.php?error=$1 [L,NC]
#Bledy HTTP - wlasna strona bledu
#Client error - po stronie klienta
ErrorDocument 400 /400
ErrorDocument 401 /401
ErrorDocument 402 /402
ErrorDocument 403 /403
ErrorDocument 404 /404
ErrorDocument 405 /405
ErrorDocument 406 /406
ErrorDocument 407 /407
ErrorDocument 408 /408
ErrorDocument 409 /409
ErrorDocument 410 /410
ErrorDocument 411 /411
ErrorDocument 412 /412
ErrorDocument 413 /413
ErrorDocument 414 /414
ErrorDocument 415 /415
ErrorDocument 416 /416
ErrorDocument 417 /417
#Server error - po stronie serwera
ErrorDocument 500 /500
ErrorDocument 501 /501
ErrorDocument 502 /502
ErrorDocument 503 /503
ErrorDocument 504 /504
ErrorDocument 505 /505
ErrorDocument 509 /509

Jak widać powyżej strony błędów są pobierane z adresu /XXX gdzie XXX to numer błędu. Natomiast reguła RewriteRule wczytuje dokument errorek.php ze zmienną GET error=$1 gdzie $1 to numer błedu jak i adres wywołanej strony.

kody odpowiedzi statusów http 1.1

kody błędów odpowiedzi statusów http 1.1

Status Code Definitions HTTP/1.1 – HTTP Request and Response Header – dotyczą one:

Client Error 4xx

Klasa statusów 4xx jest przeznaczona do przypadków w których klient powoduje błąd. Z wyjątkiem sytuacji gdy odpowiada na zapytanie HEAD, serwer powinien zawierać stosowną jednostkę wyjaśniająca zaistniałą sytuację (błąd), i czy jest to stan tymczasowy lub stały. Te kody odpowiedzi mają zastosowanie do każdej metody zapytania. User Agent (przeglądarka) powinien wyświetlić dowolną jednostkę użytkownikowi.

Jeśli klient przesyła dane, a serwer realizuje zapytanie przy użyciu protokołu TCP powinien być ostrożny, aby zapewnić iż klient otrzyma pakiet(y) zawierające odpowiedzi, zanim serwer zamknie połączenie wejściowe. Jeśli klient nadal wysyła dane po zamknięciu, serwer TCP wysyła pakiet resetujący do klienta, który może skasować klienta nieuznanego bufora wejścia przed ich odczytaniem i zinterpretowaniem przez aplikację HTTP.

  • 400 Bad Request ( Błędne żądanie )
  • 401 Unauthorized ( Brak autoryzacji )
  • 402 Payment Required ( Wymagana opłata )
  • 403 Forbidden ( Dostęp zabroniony )
  • 404 Not Found ( Nie znaleziono )
  • 405 Method Not Allowed ( Metoda nie dozwolona )
  • 406 Not Acceptable ( Brak akceptacji )
  • 407 Proxy Authentication Required ( Wymagana autoryzacja proxy )
  • 408 Request Time-out ( Zapytanie przekroczyło czas oczekiwania )
  • 409 Conflict ( Konflikt )
  • 410 Gone ( Zniknął )
  • 411 Length Required ( Wymagana długość )
  • 412 Precondition Failed ( Nie spełniono warunku wstępnego )
  • 413 Request Entity Too Large ( Zbyt duże żądanie )
  • 414 Request-URI Too Large ( Adres URI zapytania jest zbyt długi )
  • 415 Unsupported Media Type ( Niewspierany typ medium )
  • 416 Requested range not satisfiable ( Żądany zakres nie obsługiwany )
  • 417 Expectation Failed ( Niepowodzenie oczekiwania )
  • 666 Welcome in Home ( Witamy w domu )
  • 616 Go to Home ( Idź do domu )

Server Error 5xx

Kody odpowiedzi rozpoczynające się od cyfry “5” wskazują przypadki w których serwer jest świadomy iż popełnił błąd lub jest niezdolny do wykonania zapytania. Z wyjątkiem sytuacji, gdy odpowiadając na wniosek HEAD, serwer powinien zawierać informacje wyjaśniające zaistniały błąd, i czy stan tego jest tymczasowy lub stały. User agent (przeglądarka) powinien wyświetlić stosowną jednostkę. Te kody odpowiedzi mają zastosowanie do każdej metody zapytania.

  • 500 Internal Server Error ( Wewnętrzny błąd serwera )
  • 501 Not Implemented ( Niezaimplementowane )
  • 502 Bad Gateway ( Błąd bramy )
  • 503 Service Unavailable ( Usługa niedostępna )
  • 504 Gateway Time-out ( Przekroczony czas oczekiwania bramy )
  • 505 HTTP Version not supported ( Brak wsparcia dla tej wersji HTTP )
  • 509 Bandwidth Limit Exceeded ( Przekroczono limit transferu )

Z czego 509 nie znajduje się w specyfikacji lecz jest używany przez serwery do wyświetlenia błędu z informacją o wyczerpaniu przyznanego transferu, choć nie jest to regułą.

Dokumentacja specyfikacji: Definicje kodów statusu HTTP/1.1