Tving netcat til at sende input med det samme: Sådan tester du HTTP-parseren korrekt

Hvordan kan netcat tvinges til at sende input med det samme og ikke kun ved nye linjer for at teste en HTTP-parser manuelt og se, hvordan den håndterer headerlinjer fordelt på flere pakker?

For at tvinge netcat til at sende input med det samme og ikke kun ved nye linjer, kan du bruge -c flaget, printf, -N flaget eller alternativt telnet.

Hvordan kan netcat tvinges til at sende input med det samme og ikke kun ved nye linjer for at teste en HTTP-parser manuelt og se, hvordan den håndterer headerlinjer fordelt på flere pakker?

For at tvinge netcat til at sende input med det samme og ikke kun ved nye linjer, kan du bruge følgende metoder:

  • Brug af -c flaget: Nogle versioner af netcat understøtter -c flaget, som tvinger netcat til at sende data med det samme.
    echo -n "GET / HTTP/1.1\r
    Host: example.com\r
    \r
    " | nc -c example.com 80
  • Brug af printf: Ved at bruge printf kan du sende data uden at tilføje en ny linje.
    printf "GET / HTTP/1.1\r
    Host: example.com\r
    \r
    " | nc example.com 80
  • Brug af -N flaget: Nogle versioner af netcat understøtter -N flaget, som lukker forbindelsen, når input er sendt.
    echo -n "GET / HTTP/1.1\r
    Host: example.com\r
    \r
    " | nc -N example.com 80
  • Brug af telnet: Hvis netcat ikke opfører sig som ønsket, kan du bruge telnet som et alternativ.
    telnet example.com 80

    Indtast derefter HTTP-forespørgslen manuelt:

    GET / HTTP/1.1
    Host: example.com
    
    

Disse metoder kan hjælpe dig med at teste, hvordan en HTTP-parser håndterer headerlinjer fordelt på flere pakker.