A blogban leírtak a szerzők saját véleménye, és nem a munkáltatójuké.

HTTP fejléc megnézése PowerShell segítségével

Egy apró trükk: Az egyik weboldalunkon meg akartam gyorsan nézni, hogy egy adott lap milyen HTTP fejlécet (HTTP header) ad vissza. Mivel helyileg néztem, ezért a Wireshark ilyenkor nem segít, hisz a kérés a loopback interfészen megy keresztül, azt meg a hálózatmonitorozó programok nem látják Windowson alapból. Fiddlert nem akartam most telepíteni, mert ez egy éles szerver (ez egyébként nagyon hasznos kis eszköz, fejlesztői gépen jól jön!). Szerencsére egy rövid PowerShell script megoldja a problémát, itt találtam egy példát rá:

$url = "http://www.cnn.com"
$xHTTP = new-object -com msxml2.xmlhttp;
$xHTTP.open("GET",$url,$false);
$xHTTP.send();
#$xHTTP.ResponseText; # returns the html doc like downloadstring
$xHTTP.status # returns the status code$xHTTP.getAllResponseHeaders()

A lefuttatáskor pedig szépen visszaadja a kívánt fejlécet:

PS C:\> .\http-header.ps1
200
Cache-Control: no-cache
Content-Length: 1
Content-Type: text/html
Last-Modified: Tue, 10 Mar 2009 07:56:54 GMT
Accept-Ranges: bytes
ETag: "931b6dc755a1c91:16bf"
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Date: Tue, 10 Mar 2009 08:08:35 GMT

4 comments to HTTP fejléc megnézése PowerShell segítségével

  • 1. a problemat a 20kbyte-os netcat is megoldja ‘nc localhost 80’ igen komoly parameterezessel 😉
    2. wireshark tud loopbacken listenelni — linuxon, mac os-en, *bsd-n es solarison

  • 1. sajnos Windowson alapból nincs netcat, úgyhogy szegény ember vízzel főz:)

    2. Kösz, félreérthető a szöveg, javítom. Igen, a Windows TCP/IP stackjét nem így írták meg, úgyhogy alapból nem olyan könnyű a loopback-et elkapni. Van néhány workaroud, lásd itt: Loopback capture setup (btw., itt azt írják, hogy ez Solarison se megy, ott is vagy trükközni kell, vagy újabb verziókban van külön eszköz erre).

  • 🙂 Telnet se rossz, de azt akartam kipróbálni, hogy Basic authentication esetén egy már bejelentkezett felhasználónak újra kell-e hitelesítenie magát, ha a Cache-Control értéke no-cache, és leellenőrizni, hogy tényleg jó állítottam-e be a válasz fejlécét. Ehhez meg kellett volna nézni, hogy hogyan néz ki a felhasználó nevem és jelszavam base64-ben elkódolva, utána pedig a GET kérésbe a telnetnél bele kellett volna rakni még a WWW-Authenticate mezőt is. Ehhez a telnet már nem annyira user-friendly, úgy maradtam a fenti scriptnél:)

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>