ARK. D03Parametr monitoringuDostępność · lista 50 parametrów

Kod odpowiedzi HTTP

ważność krytycznamierzonysposób http

Kod odpowiedzi serwera (200 OK, 5xx błąd, nieoczekiwany 3xx). Pierwsze źródło prawdy o dostępności aplikacji.

ARK. 1

WIKI

artykuł z 16.09.2026 · źródeł 10

Kod odpowiedzi HTTP (ang. HTTP status code) to parametr monitoringu stron internetowych, który rejestruje trzycyfrowy kod zwrócony przez serwer w odpowiedzi na żądanie sondy i na jego podstawie przypisuje stronie stan: poprawna odpowiedź (200 OK), błąd serwera (klasa 5xx), nieoczekiwane przekierowanie (klasa 3xx) albo odmowa dostępu lub brak zasobu (klasa 4xx) [1]. Kod z klasy 2xx nie gwarantuje jednak, że zwrócona treść jest poprawna [5].

Jak działa

Specyfikacja HTTP definiuje kod stanu jako trzycyfrową liczbę całkowitą, której pierwsza cyfra wyznacza klasę odpowiedzi [1]. Klas jest pięć: 1xx (informacyjne, żądanie odebrano i przetwarzanie trwa), 2xx (powodzenie), 3xx (przekierowanie, potrzebne jest dalsze działanie), 4xx (błąd klienta) oraz 5xx (serwer nie zdołał obsłużyć poprawnego żądania) [1] [4]. Klient, który nie rozpoznaje konkretnego kodu, powinien traktować go jak kod x00 z tej samej klasy [1].

Między sondą a aplikacją często działa pośrednik: sieć CDN, odwrotne proxy lub bramka. Kod może wtedy pochodzić z innej warstwy niż sama aplikacja. Według RFC 9110 kod 502 oznacza, że brama lub proxy otrzymała nieprawidłową odpowiedź od serwera, do którego przekazała żądanie, a 504, że nie otrzymała odpowiedzi w wymaganym czasie [1].

RYS. 1.1Błąd PHP widziany przez pośrednika

Sam kod nie wystarcza do oceny, czy strona działa. Dokumentacja WordPressa opisuje sytuację, w której błędy PHP lub bazy danych kończą się pustym ekranem bez żadnej informacji, nazywanym białym ekranem śmierci (WSOD) [6]. Google oznacza jako „soft 404” adresy, które zwracają kod z klasy 2xx, a ich treść wskazuje na błąd, na przykład pustą stronę lub komunikat o błędzie; kod 2xx nie gwarantuje też indeksowania [5]. Z tego powodu kod odpowiedzi uzupełnia się osobnym parametrem weryfikującym treść strony.

RYS. 1.2Klasyfikacja kodu odpowiedzi

Standardy i specyfikacje

Znaczenie kodów definiuje RFC 9110 (HTTP Semantics), a oficjalny wykaz prowadzi IANA w rejestrze „Hypertext Transfer Protocol (HTTP) Status Code Registry”; nowe wpisy przechodzą procedurę IETF Review [3]. Kod 429 Too Many Requests wprowadził RFC 6585 z kwietnia 2012 roku. Oznacza on, że użytkownik wysłał zbyt wiele żądań w określonym czasie, a odpowiedź może zawierać nagłówek Retry-After; specyfikacja nie określa, jak serwer identyfikuje użytkownika ani jak liczy żądania [2].

Z punktu widzenia monitoringu najważniejsze są następujące kody:

  • 200 OK: treść odpowiedzi jest reprezentacją żądanego zasobu [1].
  • 301 i 308: przekierowania trwałe; 302 i 307: tymczasowe. Kody 307 i 308 zachowują metodę żądania [1]. Roboty Google podążają za najwyżej 10 kolejnymi przekierowaniami, trwałe traktują jako silny sygnał, a tymczasowe jako słaby [5].
  • 403 Forbidden: serwer odmawia obsłużenia żądania; 404 Not Found: serwer nie znalazł zasobu [1]. Serwer może też odpowiedzieć 404 zamiast 403, aby ukryć istnienie zasobu [4].
  • 500 Internal Server Error: ogólny błąd serwera [1].
  • 502 Bad Gateway i 504 Gateway Timeout: błędy pośrednika opisane wyżej [1].
  • 503 Service Unavailable: chwilowe przeciążenie lub planowana konserwacja. Serwer może wysłać Retry-After z datą HTTP albo liczbą sekund [1]. Takich odpowiedzi zwykle nie należy buforować [4].

Cloudflare zwraca własne kody z zakresu 52x, między innymi 520 (serwer WWW zwrócił nieznany błąd), 521 (serwer WWW nie działa), 522 (przekroczony czas połączenia), 524 (przekroczony czas oczekiwania), 525 (nieudane uzgadnianie SSL) i 526 (nieprawidłowy certyfikat SSL) [9]. Nie są to kody standardowe: w rejestrze IANA zakres 512–599 pozostaje nieprzydzielony [3], więc klient, który ich nie zna, potraktuje je jak 500 [1].

Zagrożenia i skutki

Awaria aplikacji. Po błędzie krytycznym PHP WordPress wyświetla komunikat „There has been a critical error on this website” i kończy działanie funkcją wp_die() z kodem 500. Gdy witryna przechodzi w tryb odzyskiwania (recovery mode), komunikat o tym informuje, a w instalacji z jedną witryną odsyła do skrzynki e-mail administratora [7]. Wśród przyczyn błędów krytycznych dokumentacja wymienia konflikty wtyczek, niezgodność motywu lub wersji PHP, limity pamięci i uszkodzone pliki, a jako najczęstszą przyczynę błędu „Internal Server Error” uszkodzony plik .htaccess [6].

Konserwacja podczas aktualizacji. Po aktualizacji odwiedzający mogą zobaczyć komunikat „Briefly unavailable for scheduled maintenance”, który pozostaje, gdy plik .maintenance nie zostanie usunięty z katalogu głównego witryny [6]. Funkcja wp_maintenance() wysyła ten komunikat z kodem 503 i nagłówkiem Retry-After: 600 [8].

Widoczność w wyszukiwarce. Kody 5xx oraz 429 powodują, że roboty Google tymczasowo spowalniają pobieranie stron; kod 429 jest traktowany jako sygnał przeciążenia serwera, czyli błąd serwera. Adresy, które trwale zwracają błąd serwera, są usuwane z indeksu, a treści z adresów zwracających kody 4xx Google nie wykorzystuje [5].

Fałszywe alarmy. Zapory aplikacyjne (WAF) odmawiają dostępu żądaniom pasującym do reguł, co może dotyczyć także sond monitoringu. W Cloudflare akcja Block zwraca domyślnie kod 403, a w regułach ograniczania liczby żądań kod 429; od planu Pro kod odpowiedzi można zmienić. Wyzwanie JavaScript ma zatrzymywać boty, podczas gdy przeglądarki mogą je rozwiązać automatycznie [10]. Kod 403 lub 429 otrzymany przez sondę nie oznacza więc sam w sobie, że strona jest niedostępna dla odwiedzających.

Przykłady

KodZnaczenie wg RFCTypowa przyczyna na stronie WordPress
200żądanie obsłużone, treść reprezentuje zasób [1]strona działa; treść może mimo to wskazywać błąd (soft 404) [5]
301 / 308przekierowanie trwałe [1]trwałe przeniesienie adresu, dla Google silny sygnał [5]
302 / 307przekierowanie tymczasowe [1]tymczasowe przeniesienie adresu, dla Google słaby sygnał [5]
403serwer odmawia obsłużenia żądania [1]blokada żądania przez WAF (akcja Block) [10]
404serwer nie znalazł zasobu [1]adres nie istnieje albo serwer ukrywa zasób zamiast 403 [4]
429zbyt wiele żądań w określonym czasie [2]reguła ograniczania liczby żądań w WAF [10]
500ogólny błąd serwera [1]błąd krytyczny PHP [7], uszkodzony .htaccess [6]
502pośrednik otrzymał nieprawidłową odpowiedź [1]serwer za proxy lub CDN zwrócił niepoprawną odpowiedź [1]
503chwilowe przeciążenie lub konserwacja [1]aktualizacja z plikiem .maintenance [6], Retry-After: 600 [8]
504pośrednik nie otrzymał odpowiedzi na czas [1]serwer za proxy lub CDN odpowiada zbyt wolno [1]
520–526brak w RFC 9110 i w rejestrze IANA [3]kody Cloudflare, np. serwer WWW nie działa lub przekroczony czas [9]
TAB. 1.1Przypisy10
  1. [1] RFC 9110 — HTTP Semantics · IETF
  2. [2] RFC 6585 — Additional HTTP Status Codes · IETF
  3. [3] Hypertext Transfer Protocol (HTTP) Status Code Registry · IANA
  4. [4] HTTP response status codes · MDN Web Docs (Mozilla)
  5. [5] How HTTP status codes affect Google's crawlers · Google Search Central
  6. [6] Common WordPress Errors · WordPress.org
  7. [7] WP_Fatal_Error_Handler::display_default_error_template() · WordPress Developer Resources
  8. [8] wp_maintenance() · WordPress Developer Resources
  9. [9] Cloudflare 5xx errors · Cloudflare
  10. [10] Actions — Rules language · Cloudflare
ARK. 2

STATS

wyniki z systemu · tylko liczby zbiorcze
TAB. 2.1Odczyty per stronaostatni dzień pomiaru 21.09.2026
Stron zmierzonych
204w ostatnim dniu pomiaru
OK
304odczytów
Fail
40odczytów
Nie dało się sprawdzić
0timeout, blokada, limit zapytań
Udział fail
11,6%bez „nie dało się”
TAB. 2.2Od początkuod 17.09.2026
Stron łącznie
206choć jeden odczyt
OK
1767odczytów
Fail
197odczytów
Nie dało się sprawdzić
2timeout, blokada, limit zapytań
Udział fail
10,0%bez „nie dało się”
RYS. 2.130 dnicheck_type: http
23.08.202607.09.202621.09.2026
Odczyty parametru Kod odpowiedzi HTTP, 30 dni · wysokość słupka = liczba odczytów dnia, warstwy od dołu: fail, nie dało się sprawdzić, ok · dni bez odczytu: 25 · dni ze stanem „fail”: 17.09.2026, 18.09.2026, 19.09.2026, 20.09.2026, 21.09.2026 · dni ze stanem „nie dało się sprawdzić”: 19.09.2026
Odczyty parametru Kod odpowiedzi HTTP, 30 dni
Dzieńfailnie dało się sprawdzićok
23.08.20260 odczytów0 odczytów0 odczytów
24.08.20260 odczytów0 odczytów0 odczytów
25.08.20260 odczytów0 odczytów0 odczytów
26.08.20260 odczytów0 odczytów0 odczytów
27.08.20260 odczytów0 odczytów0 odczytów
28.08.20260 odczytów0 odczytów0 odczytów
29.08.20260 odczytów0 odczytów0 odczytów
30.08.20260 odczytów0 odczytów0 odczytów
31.08.20260 odczytów0 odczytów0 odczytów
01.09.20260 odczytów0 odczytów0 odczytów
02.09.20260 odczytów0 odczytów0 odczytów
03.09.20260 odczytów0 odczytów0 odczytów
04.09.20260 odczytów0 odczytów0 odczytów
05.09.20260 odczytów0 odczytów0 odczytów
06.09.20260 odczytów0 odczytów0 odczytów
07.09.20260 odczytów0 odczytów0 odczytów
08.09.20260 odczytów0 odczytów0 odczytów
09.09.20260 odczytów0 odczytów0 odczytów
10.09.20260 odczytów0 odczytów0 odczytów
11.09.20260 odczytów0 odczytów0 odczytów
12.09.20260 odczytów0 odczytów0 odczytów
13.09.20260 odczytów0 odczytów0 odczytów
14.09.20260 odczytów0 odczytów0 odczytów
15.09.20260 odczytów0 odczytów0 odczytów
16.09.20260 odczytów0 odczytów0 odczytów
17.09.202629 odczytów0 odczytów177 odczytów
18.09.202630 odczytów0 odczytów176 odczytów
19.09.202667 odczytów2 odczyty561 odczytów
20.09.202631 odczytów0 odczytów549 odczytów
21.09.202640 odczytów0 odczytów304 odczyty
TAB. 2.3Ustaleniaod 13.07.2026
Otwarte teraz
39stron: 39 · w okresie łaski: 7
Nowe w ostatnim dniu
921.09.2026
Otwarte od początku
184stron: 95
Zamknięte
138od początku
Mediana trwania
5 h 59 minod wykrycia do zamknięcia
UstalenieSkutekOtwarte terazŁącznieZamknięte
Odpowiedź HTTP httpDOWN39184138
RYS. 2.2Nowe ustalenia, 30 dni
23.08.202607.09.202621.09.2026
Nowe ustalenia parametru Kod odpowiedzi HTTP, 30 dni · wysokość słupka = liczba ustaleń dnia, warstwy od dołu: nowe ustalenia · dni bez odczytu: 8
Nowe ustalenia parametru Kod odpowiedzi HTTP, 30 dni
Dzieńnowe ustalenia
23.08.20266 ustaleń
24.08.20261 ustalenie
25.08.20264 ustalenia
26.08.20263 ustalenia
27.08.20262 ustalenia
28.08.20262 ustalenia
29.08.20261 ustalenie
30.08.20263 ustalenia
31.08.20263 ustalenia
01.09.20267 ustaleń
02.09.20261 ustalenie
03.09.20261 ustalenie
04.09.20262 ustalenia
05.09.20262 ustalenia
06.09.202620 ustaleń
07.09.20262 ustalenia
08.09.20264 ustalenia
09.09.202615 ustaleń
10.09.20260 ustaleń
11.09.20260 ustaleń
12.09.20260 ustaleń
13.09.20260 ustaleń
14.09.20260 ustaleń
15.09.20260 ustaleń
16.09.20260 ustaleń
17.09.202613 ustaleń
18.09.20262 ustalenia
19.09.20267 ustaleń
20.09.20260 ustaleń
21.09.20269 ustaleń
TAB. 2.4Przebiegi z tym sposobem sprawdzeniaod 09.09.2026
Przebiegów
60sposób http
W 30 dni
60przebiegów
Ostatni
19.09.2026start przebiegu
Stron w przebiegach
20461 przebiegów bez liczby stron
ARK. 3

CARD

karta z kodu CREATO_PING, odczyt 16.09.2026
RYS. 3.1Droga parametru przez system: Kod odpowiedzi HTTP
TAB. 3.1Pomiarpliki: 4
Obszar i ważnośćDostępność · krytyczna (D03)
Workflow i częstotliwośćcreato_ping_avail_v2 działa na LAB247cron co 24 h, osobno T1–T4 · Strony w stanie DOWN i WARNING dostają dodatkowy odczyt co 6 h (timer availability_recheck poza n8n). Od 2026-09-16 sposób ssl daje odczyt ssl_expiry (dni do wygaśnięcia certyfikatu); od 2026-09-17 odczyty trafiają do check_results.
Sonda i helpersposób http · CREATO_PING/helpers/http_check.py
Testy
  1. GET https://domena/ z UA monitora, do 5 przekierowań.
  2. Kod 200–399 = ok, każdy inny = fail.
  3. Przy 403, 406, 415, 429 albo 451 druga próba z UA przeglądarki — jeśli wtedy 2xx/3xx, wynik ok z flagą ua_fallback (WAF blokuje boty, strona działa).
Typ wynikuenum: ok / fail / timeout + kod HTTP, rozmiar odpowiedzi, adres końcowy
Jednostkakod HTTP; czas w ms
Próg i regułaTimeout odpowiedzi 5,0 s, połączenia 2,0 s. Reguła kodu: 200 ≤ kod < 400.
Gdzie leżą pokrętłaCREATO_PING/helpers/http_check.py → _classifyCREATO_PING/helpers/common.py → BLOCK_LIKE_STATUSESCREATO_PING/helpers/config.py → TIMEOUTS["http"]
Retencja odczytówKażdy odczyt w tabeli check_results bazy LAB247; kod LAB247 tej tabeli nie czyści. Polityki retencji nikt jeszcze nie ustalił.
Karta przepisana zCREATO_PING/helpers/http_check.py · CREATO_PING/helpers/common.py · CREATO_PING/helpers/config.py · CREATO_PING/helpers/site_params.py · odczyt 16.09.2026
TAB. 3.2Co oznacza failtypów ustaleń: 1

1. fail = ustalenie w okresie łaski (IN PROGRESS, bez alertu). 2. fail z rzędu = ustalenie otwarte i status strony DOWN — sprawdzenie należy do krytycznych (tcp, dns, http, ssl). Wyjątki bijące DOWN: BLOKADA (strona odpowiada z innych lokalizacji, zablokowane jest IP monitoringu) i CONFIG (działa tylko jedna forma adresu). Pierwszy odczyt ok zamyka ustalenie.

UstaleniePowagaPewnośćSkutekSubtask / alarmCo zrobić
Odpowiedź HTTPhttpWysokieEwidentneDOWNtak / takSprawdź logi serwera i PHP, ostatnie aktualizacje wtyczek.
ARK. 4

LOOP

pętli: 3
RYS. 4.1Pętla parametru — sześć etapów
TAB. 4.1Trafność, 30 dnialarmy · prawdziwe · fałszywe · bez rozstrzygnięcia

Trafności jeszcze nie liczymy: zamknięcie subtaska nie niesie dziś werdyktu (prawdziwy / fałszywy / nie dało się sprawdzić). Cztery liczby pojawią się, gdy każde zamknięcie dostanie werdykt — to warunek startu pętli 1.

TAB. 4.2Pętle3 · zmian: 3 · wpływających na cały system: 3
WAF blokujący UA monitora to nie awariazamknięta historyczna 2026-07-19

Sygnał: Strony za WAF-em albo wtyczką bezpieczeństwa zwracały sondzie 403/429, a działały dla ludzi — fałszywe DOWN. · dotyczy też: Weryfikacja treści, Przekierowanie HTTP → HTTPS

  1. 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
  2. 2. Werdyktręcznieczłowiek potwierdził, że strona działa w przeglądarce
  3. 3. Miarabrakliczników trafności wtedy nie było
  4. 4. Kartabrakkarta parametru powstała 2026-09-16
  5. 5. Zmianazrobionedruga próba z UA przeglądarki
  6. 6. Replaybrakbrak zapisanych odczytów do replayu
DataZmianaPowódWpływ na systemCommit · replay
2026-07-19Przy kodzie 403, 406, 415, 429 albo 451 sprawdzenie ponawia żądanie z UA przeglądarki; 2xx/3xx za drugim razem = ok (w przekierowaniu: adres końcowy na https).helpers/common.py · helpers/http_check.py · helpers/content_check.py · helpers/redirect_check.pyBlokada robotów na poziomie aplikacji nie jest niedostępnością strony.cały system Ta sama reguła obowiązuje w weryfikacji treści — oba sprawdzenia czytają BLOCK_LIKE_STATUSES z common.py.343b699bez replayubez zapisu zatwierdzenia
Status BLOKADA: zbanowane IP monitoringuzamknięta historyczna 2026-07-19

Sygnał: Strona wisiała na DOWN, choć działała: hosting klienta zbanował IP serwera monitoringu (SYN porzucany, nie odrzucany) po serii automatycznych odpytań. · dotyczy też: Połączenie TCP, SSL: ważność certyfikatu

  1. 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
  2. 2. Werdyktręczniedostępność potwierdzona z innych lokalizacji
  3. 3. Miarabrakliczników trafności wtedy nie było
  4. 4. Kartabrakkarta parametru powstała 2026-09-16
  5. 5. Zmianazrobionezewnętrzny cross-check i nowy status strony
  6. 6. Replaybrakbrak zapisanych odczytów do replayu
DataZmianaPowódWpływ na systemCommit · replay
2026-07-19Timeout TCP/HTTP z naszego serwera sprawdzany z zewnątrz; odpowiedź z innych lokalizacji = status BLOKADA zamiast DOWN.helpers/network_block_check.py · helpers/site_params.pyBlokada sieciowa monitoringu to inny mechanizm niż blokada UA — działa poniżej HTTP.cały system Nowy status strony w kolejności pierwszeństwa, nad DOWN — zmienia status każdej strony, nie tylko tego parametru.8c0c0c6bez replayubez zapisu zatwierdzenia
Status CONFIG: działa tylko jedna forma adresuzamknięta historyczna 2026-08-04

Sygnał: Adres bez www odpowiadał 200, a forma z www miała certyfikat samopodpisany — silnik eskalował to do DOWN. · dotyczy też: Połączenie TCP, Rozwiązywanie DNS, SSL: ważność certyfikatu, Przekierowanie www ↔ bez www

  1. 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
  2. 2. Werdyktręcznieużytkownicy widzą sprawną stronę, więc alarm był fałszywy
  3. 3. Miarabrakliczników trafności wtedy nie było
  4. 4. Kartabrakkarta parametru powstała 2026-09-16
  5. 5. Zmianazrobionesprawdzenie częściowej dostępności i status CONFIG
  6. 6. Replaybrakbrak zapisanych odczytów do replayu
DataZmianaPowódWpływ na systemCommit · replay
2026-08-04Częściowa dostępność (jedna forma 200, druga zepsuta) daje status CONFIG, który bije DOWN.helpers/site_params.py · helpers/partial_availability_check.pyBłąd konfiguracji do naprawy to nie awaria; realny DOWN zostaje, gdy nie odpowiada żadna forma.cały system Nowy status strony nad DOWN; dotyczy wszystkich sprawdzeń krytycznych (tcp, dns, http, ssl).091e318bez replayubez zapisu zatwierdzenia
Blog 24/7
20.09Zastrzeżony PESEL: zmiana raz na 30 minut, blokada przy wypłaciedobreprogramy.pl20.09Fałszywe SMS-y od GITD o mandacie za autostradę wyłudzają dane kartyinstalki.pl20.09Pakiet npm indexed-btree omija blokadę skryptów instalacyjnychbleepingcomputer.com19.09SolarWinds łata CVE-2026-28326 w Access Rights Manager, zdalny kod bez logowaniathehackernews.com19.09Orkes Conductor: luka CVE-2026-58138 atakowana w sieci, poprawka w wersji 3.30.2thehackernews.com19.09Trzy luki jądra Linux w katalogu CISA KEV, Red Hat potwierdza aktywne atakithehackernews.com18.09Publiczne exploity na cztery luki jądra Linux dają lokalnie uprawnienia rootthehackernews.com18.09Brevo: skradziony klucz API Cloudflare i skrypty ClickFix na stronach klientówbleepingcomputer.com18.09WaterPlum z Korei Północnej zainfekowała 30 000 urządzeń w 100 krajachtherecord.media18.09Jedna zgoda OAuth daje napastnikowi dostęp do poczty i plików mimo MFAdarkreading.com