Parser wiadomości HTTP

Parsowanie i inspekcja wiadomości HTTP/1.x i HTTP/2, w tym żądań, odpowiedzi i wyjścia curl verbose. Przeglądanie nagłówków, kodów statusu i treści w sformatowanym widoku. Obsługuje automatyczne wykrywanie typu treści dla JSON, HTML i XML.

Specyfikacje

Typowe zastosowania

  • Debugowanie żądań HTTP z zakładki sieciowej przeglądarki
  • Analiza odpowiedzi API
  • Parsowanie wyjścia curl -v do rozwiązywania problemów
  • Inspekcja payloadów webhooków
  • Przegląd nagłówków HTTP pod kątem analizy bezpieczeństwa

Funkcje

  • Parsowanie żądań i odpowiedzi HTTP/1.x i HTTP/2
  • Parsowanie wyjścia curl -v w formacie verbose
  • Wyświetlanie kodów statusu z kolorowym kodowaniem kategorii (2xx, 3xx, 4xx, 5xx)
  • Oddzielenie nagłówków żądania i odpowiedzi dla wyjścia curl
  • Automatyczne wykrywanie typu zawartości treści (JSON, HTML, XML)
  • Dynamiczne renderowanie narzędzia treści (leniwe ładowanie JSONTool, HTMLTool itp. dla zawartości treści)
  • Rozwijanie/zwijanie sekcji treści
  • Kopiowanie nagłówków lub treści do schowka

Przyklady

Żądanie HTTP GET

Wypróbuj →

Proste żądanie GET z nagłówkami

GET /api/users HTTP/1.1
Host: example.com
Accept: application/json
Authorization: Bearer token123

Odpowiedź HTTP

Wypróbuj →

Odpowiedź 200 OK z treścią JSON

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 27

{"name":"John","age":30}

Wyjście curl -v

Wypróbuj →

Verbose wyjście curl z żądaniem i odpowiedzią

* Trying 93.184.216.34:443...
* Connected to example.com
> GET /api HTTP/1.1
> Host: example.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/json
<
{"status":"ok"}

Wskazowki

  • Wklej wyjście curl -v bezpośrednio - nagłówki żądania i odpowiedzi są parsowane oddzielnie.
  • Kliknij "Dekoduj jako JSON/HTML/XML", aby przekierować treść do odpowiedniego dekodera.
  • Kody statusu mają kodowanie kolorami: zielony (2xx), niebieski (3xx), żółty (4xx), czerwony (5xx).

Zrozumienie Parser wiadomości HTTP

Wiadomości HTTP to fundamentalne jednostki komunikacji w protokole Hypertext Transfer Protocol. Każda interakcja między klientem webowym a serwerem składa się z wiadomości żądania i wiadomości odpowiedzi. Zrozumienie ich struktury jest niezbędne do debugowania API, analizy ruchu sieciowego i budowania usług webowych.

Żądanie HTTP zaczyna się od linii żądania zawierającej metodę (GET, POST, PUT, DELETE), ścieżkę docelową i wersję protokołu. Następnie pojawiają się pola nagłówkowe (pary klucz-wartość), pusta linia i opcjonalna treść. Metoda wskazuje zamierzoną akcję: GET pobiera dane, POST przesyła dane, PUT zastępuje zasób, DELETE usuwa go, a PATCH częściowo aktualizuje.

Odpowiedź HTTP zaczyna się od linii statusu zawierającej wersję protokołu, trzycyfrowy kod statusu i frazę przyczyny. Kody statusu są pogrupowane według klas: 2xx dla sukcesu (200 OK, 201 Created), 3xx dla przekierowania (301 Moved, 304 Not Modified), 4xx dla błędów klienta (400 Bad Request, 401 Unauthorized, 404 Not Found) i 5xx dla błędów serwera (500 Internal Server Error, 502 Bad Gateway).

Narzędzie wiersza poleceń curl z flagą -v (verbose) wyświetla zarówno żądanie, jak i odpowiedź w charakterystycznym formacie, używając > dla wysłanych danych i < dla otrzymanych danych. Ten format wyjścia jest jednym z najczęstszych sposobów, w jaki deweloperzy spotykają się z surowymi wiadomościami HTTP, co czyni parsowanie curl -v niezbędną zdolnością debugowania.

HTTP/1.1 jest oparty na tekście i wysyła jedno żądanie na połączenie TCP na raz (pipelining istnieje, ale jest słabo obsługiwany). HTTP/2 to binarny protokół, który multipleksuje wiele żądań przez jedno połączenie, obsługuje server push i kompresuje nagłówki za pomocą HPACK. HTTP/2 znacząco zmniejsza opóźnienia dla nowoczesnych stron internetowych. Semantyka — metody, kody statusu i nagłówki — pozostaje taka sama w obu wersjach; różni się tylko format przewodowy.

W wyjściu curl -v linie zaczynające się od > to dane wysłane do serwera (żądanie), linie zaczynające się od < to dane otrzymane od serwera (odpowiedź), a linie zaczynające się od * to informacyjne wiadomości curl o szczegółach połączenia i negocjacji TLS. Pusta linia zawierająca tylko > lub < oddziela nagłówki od treści. To narzędzie automatycznie parsuje wszystkie trzy sekcje.

Kody statusu podążają za dobrze zdefiniowanym schematem numerycznym: kody 1xx są informacyjne (100 Continue), 2xx oznaczają sukces (200 OK, 201 Created, 204 No Content), 3xx sygnalizują przekierowanie (301 Permanent, 302 Found, 304 Not Modified), 4xx reprezentują błędy klienta (400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests), a 5xx obejmują błędy serwera (500 Internal Error, 502 Bad Gateway, 503 Service Unavailable).

← Powrot do wszystkich narzedzi