Narzędzia użytkownika

Narzędzia witryny


sk2:http

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
sk2:http [2025/01/08 23:55]
jkonczak [Nowsze wersje HTTP]
sk2:http [2026/01/08 19:09] (aktualna)
jkonczak [Nowsze wersje HTTP]
Linia 241: Linia 241:
 Sprawdź jak zostanie zrozumiana nazwa zasobu Sprawdź jak zostanie zrozumiana nazwa zasobu
 <​html><​span class="​sel"></​html>​%C5%BB%C3%B3%C5%82%C4%87<​html></​span></​html>​ i <​html><​span class="​sel"></​html>​%C5%BB%C3%B3%C5%82%C4%87<​html></​span></​html>​ i
-<​html><​span class="​sel"></​html>​d%C4%85%C4%87+w+r%C3%B3g<​html></​span></​html>:​+<​html><​span class="​sel"></​html>​%5Bd%C4%85%C4%87%20w%20r%C3%B3g%5D<​html></​span></​html>:​
 <​code>​ <​code>​
-openssl s_client -crlf -quiet -verify_quiet pl.wikipedia.org:​https << EOF | grep '​title>' ​   +openssl s_client -crlf -quiet -verify_quiet pl.wikipedia.org:​https << EOF | grep -o '<​title>​.*</​title>'​
 GET /​wiki/​%C5%BB%C3%B3%C5%82%C4%87 HTTP/1.0 GET /​wiki/​%C5%BB%C3%B3%C5%82%C4%87 HTTP/1.0
 Host: pl.wikipedia.org Host: pl.wikipedia.org
 +User-Agent: I'm a human, not a robot.
  
 EOF EOF
 </​code>​ </​code>​
 <​code>​ <​code>​
-openssl s_client -crlf -quiet -verify_quiet ​www.google.pl:https << EOF | grep -o '<​title>​.*</​title>'​ +openssl s_client -crlf -quiet -verify_quiet ​duckduckgo.com:https << EOF | grep -o '<​title>​.*</​title>'​ 
-GET /search?q=d%C4%85%C4%87+w+r%C3%B3g HTTP/1.0 +GET /?q=%5Bd%C4%85%C4%87%20w%20r%C3%B3g%5D HTTP/1.0 
-Host: www.google.pl +Host: duckduckgo.com
-User-Agent: Mozilla/5.0 Firefox/100+
  
 EOF EOF
Linia 261: Linia 261:
 Do zmiany ze zwykłego utf-8 na urlencode i z powrotem możesz użyć np. gotowej komendy w perlu czy php: Do zmiany ze zwykłego utf-8 na urlencode i z powrotem możesz użyć np. gotowej komendy w perlu czy php:
 <​code>​ <​code>​
-openssl s_client -crlf -quiet -verify_quiet ​www.google.pl:https << EOF | grep -o '<​title>​.*</​title>'​ +openssl s_client -crlf -quiet -verify_quiet ​duckduckgo.com:https << EOF | grep -o '<​title>​.*</​title>'​ 
-GET /search?q=$(perl -Mutf8 -MURI::​Escape -e 'print uri_escape_utf8 "​żółta żaba żarła żur"'​) HTTP/1.0 +GET /?q=$(perl -Mutf8 -MURI::​Escape -e 'print uri_escape_utf8 "​żółta żaba żarła żur"'​) HTTP/1.0 
-Host: www.google.pl +Host: duckduckgo.com
-User-Agent: Mozilla/5.0 Firefox/100+
  
 EOF EOF
 </​code>​ </​code>​
 <​code>​ <​code>​
-openssl s_client -crlf -quiet -verify_quiet ​www.google.pl:https << EOF | grep -o '<​title>​.*</​title>'​ +openssl s_client -crlf -quiet -verify_quiet ​duckduckgo.com:https << EOF | grep -o '<​title>​.*</​title>'​ 
-GET /search?q=$(php -r 'echo urlencode("​żółta żaba żarła żur"​);'​) HTTP/1.0 +GET /?q=$(php -r 'echo urlencode("​żółta żaba żarła żur"​);'​) HTTP/1.0 
-Host: www.google.pl +Host: duckduckgo.com
-User-Agent: Mozilla/5.0 Firefox/100+
  
 EOF EOF
Linia 300: Linia 298:
 na port 443 adresu IP <​html><​span class="​sel">​150.254.186.176</​span></​html>​ na port 443 adresu IP <​html><​span class="​sel">​150.254.186.176</​span></​html>​
 i podaj różne wartości nagłówka //Host//: raz <​html><​span class="​sel">​www.mpu.pl</​span></​html>,​ i podaj różne wartości nagłówka //Host//: raz <​html><​span class="​sel">​www.mpu.pl</​span></​html>,​
-raz  <​html><​span class="​sel">​www.mpk.poznan.pl</​span></​html>​. Porównaj odpowiedzi. +raz  <​html><​span class="​sel">​pbo26.um.poznan.pl</​span></​html>​. Porównaj odpowiedzi. 
-<code+<html><​pre
-openssl s_client -quiet -verify_quiet -crlf 150.254.186.176:​https << EOF \+openssl s_client -quiet -verify_quiet -crlf <b>150.254.186.176</b>:https << EOF \
        | awk '​{if(p)print;​else print>"/​dev/​stderr"​};/​^\r$/​{p=1}'​ | w3m -T text/html -dump -        | awk '​{if(p)print;​else print>"/​dev/​stderr"​};/​^\r$/​{p=1}'​ | w3m -T text/html -dump -
 GET / HTTP/1.0 GET / HTTP/1.0
 Host: www.mpu.pl Host: www.mpu.pl
  
-EOF +EOF</pre></​html
-</code+<html><​pre
-<code+openssl s_client -quiet -verify_quiet -crlf <b>150.254.186.176</b>:https << EOF \
-openssl s_client -quiet -verify_quiet -crlf 150.254.186.176:​https << EOF \+
        | awk '​{if(p)print;​else print>"/​dev/​stderr"​};/​^\r$/​{p=1}'​ | w3m -T text/html -dump -        | awk '​{if(p)print;​else print>"/​dev/​stderr"​};/​^\r$/​{p=1}'​ | w3m -T text/html -dump -
 GET / HTTP/1.0 GET / HTTP/1.0
-Host: www.mpk.poznan.pl+Host: pbo26.um.poznan.pl
  
-EOF +EOF</pre></​html>
-</code>+
 <​html><​div class="​sk2_spacer"></​div></​html>​ <​html><​div class="​sk2_spacer"></​div></​html>​
  
Linia 342: Linia 338:
  
 ~~Zadanie.#​.#​~~ ~~Zadanie.#​.#​~~
-Ściągnij treść strony <​html><​span class="​sel">​http://www2.cs.put.poznan.pl/</​span></​html>​ i znajdź w nagłówkach+Ściągnij treść strony <​html><​span class="​sel">​https://sejm.gov.pl/</​span></​html>​ i znajdź w nagłówkach
 odpowiedzi ten proszący o zapamiętanie ciasteczka: odpowiedzi ten proszący o zapamiętanie ciasteczka:
 <​code>​ <​code>​
-unix2dos << EOF | nc www2.cs.put.poznan.pl 80 | head -n18+openssl s_client -crlf -quiet -verify_quiet sejm.gov.pl:https << EOF | head -n 30
 GET / HTTP/1.0 GET / HTTP/1.0
-Host: www2.cs.put.poznan.pl+Host: sejm.gov.pl 
 +User-Agent: Jonathan Teatime
  
 EOF EOF
Linia 354: Linia 351:
  
 ~~Zadanie.#​.#​~~ ~~Zadanie.#​.#​~~
-Ponownie ściągnij treść strony <​html><​span class="​sel">​http://www2.cs.put.poznan.pl/</​span></​html>, ​ale tym razem +Ściągnij(( 
-podaj w nagłówkach ​ciasteczko o treści <​html><​i><​span class="​sel">​qtrans_front_language=en</​span></​i></​html>​. Czy różni + W potoku ''​awk''​ przerzuca nagłówki do strumienia standardowego błędu, a ''​w3m''​ 
-się odpowiedź jeśli w żądaniu znalazło się wskazane ciasteczko?+ ​rysuje otrzymany kod HTML w konsoli. Zamiast ''​| w3m …''​ możesz użyć też 
 + ''​| elinks -dump /​dev/​sdtin''​ lub ''​| html2text''​. 
 +)) treść strony <​html><​span class="​sel">​https://www.printables.com/</​span></​html>,​ 
 +najpierw nie podając ciasteczek, potem podając ​ciasteczko o treści 
 +<​html><​i><​span class="​sel">​lang=cs</​span></​i></​html>​. 
 +Czy różni się odpowiedź jeśli w żądaniu znalazło się wskazane ciasteczko? 
 +<​code>​ 
 +(openssl s_client -crlf -quiet -verify_quiet www.printables.com:​https << EOF 
 +GET / HTTP/1.0 
 +Host: www.printables.com 
 + 
 +EOF 
 +) | awk '​{if(p)print;​else print substr($0,​0,'​$COLUMNS'​)>"/​dev/​stderr"​};/​^\r$/​{p=1}'​ | 
 +    w3m -T text/html -dump - | head -n 20 
 +</​code>​ 
 <​code>​ <​code>​
-unix2dos ​<< EOF | nc www2.cs.put.poznan.pl 80 | head -n18+(openssl s_client -crlf -quiet -verify_quiet www.printables.com:​https ​<< EOF
 GET / HTTP/1.0 GET / HTTP/1.0
-Host: www2.cs.put.poznan.pl +Host: www.printables.com 
-Cookie: ​qtrans_front_language=en+Cookie: ​lang=cs
  
 EOF EOF
 +) | awk '​{if(p)print;​else print substr($0,​0,'​$COLUMNS'​)>"/​dev/​stderr"​};/​^\r$/​{p=1}'​ |
 +    w3m -T text/html -dump - | head -n 20
 </​code>​ </​code>​
  
Linia 412: Linia 426:
 Host: www.facebook.com Host: www.facebook.com
 Accept-Encoding:​ $ENC Accept-Encoding:​ $ENC
-User-Agent: ​czlowiek+User-Agent: ​Bowerick Wowbagger
  
 EOF EOF
Linia 542: Linia 556:
 GET / HTTP/1.0 GET / HTTP/1.0
 Host: www.wikipedia.org Host: www.wikipedia.org
 +User-Agent: Wrackspurt
  
 EOF EOF
Linia 551: Linia 566:
 GET / HTTP/1.0 GET / HTTP/1.0
 Host: www.wikipedia.org Host: www.wikipedia.org
-If-Modified-Since:​ Mon, 06 Jan 2025 16:45:09 GMT+User-Agent: Nargle 
 +If-Modified-Since:​ Mon, 05 Jan 2026 16:36:56 GMT
  
 EOF EOF
Linia 566: Linia 582:
 GET / HTTP/1.0 GET / HTTP/1.0
 Host: www.wikipedia.org Host: www.wikipedia.org
-If-None-Match:​ W/"133d4-62b0c59f38f40"+User-Agent: Snorkack 
 +If-None-Match:​ W/"2656d-647a6aacd7a00"
  
 EOF EOF
Linia 610: Linia 627:
 )): )):
 <​code>​ <​code>​
-openssl s_client -verify_quiet -quiet pomoc.put.poznan.pl:​https << EOF | awk '​{if(p)print;​else print>"/​dev/​stderr"​};/​^\r$/​{p=1}'​ | w3m -T text/html -dump -+openssl s_client -verify_quiet -quiet pomoc.put.poznan.pl:​https << EOF |
 +    ​awk '​{if(p)print;​else print>"/​dev/​stderr"​};/​^\r$/​{p=1}'​ | w3m -T text/html -dump -
 GET /​index.php?/​Base/​Search/​Index HTTP/1.0 GET /​index.php?/​Base/​Search/​Index HTTP/1.0
 Host: pomoc.put.poznan.pl Host: pomoc.put.poznan.pl
Linia 617: Linia 635:
 </​code>​ </​code>​
 <​code>​ <​code>​
-openssl s_client -verify_quiet -quiet pomoc.put.poznan.pl:​https << EOF | awk '​{if(p)print;​else print>"/​dev/​stderr"​};/​^\r$/​{p=1}'​ | w3m -T text/html -dump -+openssl s_client -verify_quiet -quiet pomoc.put.poznan.pl:​https << EOF |
 +    ​awk '​{if(p)print;​else print>"/​dev/​stderr"​};/​^\r$/​{p=1}'​ | w3m -T text/html -dump -
 POST /​index.php?/​Base/​Search/​Index HTTP/1.0 POST /​index.php?/​Base/​Search/​Index HTTP/1.0
 Host: pomoc.put.poznan.pl Host: pomoc.put.poznan.pl
Linia 898: Linia 917:
 w HTTP/2 spowodowane odpowiednio komendami: w HTTP/2 spowodowane odpowiednio komendami:
 <​code>​ <​code>​
-curl -v --http2 ​           nghttp2.org nghttp2.org/​documentation/​ nghttp2.org/​blog/​+curl -v --http2 ​           nghttp2.org nghttp2.org/​documentation/​ nghttp2.org/​blog/ ​ | grep '<​title>​.*</​title>'​
 </​code>​ </​code>​
 <​code>​ <​code>​
-curl -v --http2 --parallel nghttp2.org nghttp2.org/​documentation/​ nghttp2.org/​blog/​+curl -v --http2 --parallel nghttp2.org nghttp2.org/​documentation/​ nghttp2.org/​blog/ ​ | grep '<​title>​.*</​title>'​
 </​code>​ </​code>​
  
 === HTTP/3 ===  === HTTP/3 === 
 +//Uwaga:// w OpenSUSE 15.6 niektóre biblioteki (m. in. OpenSSL) są w starszej wersji niż ta potrzebna dla wsparcia ​ HTTP/3 w curl. Dlatego do HTTP/3, zamiast systemowego programu ''​curl'',​ użyj wersję ze wskazanego kontenera:
 +<​code>​
 +sudo systemctl start docker
 +</​code>​
 +<​code>​
 +alias my_curl="​sudo docker run --network=host --mount type=bind,​src=/​tmp,​dst=/​tmp -e SSLKEYLOGFILE=/​tmp/​sslkey.log --rm alpine/​curl-http3 curl"
 +</​code>​
 +(Po wykonaniu powyższej komendy ''​alias''​ "​lepszy"​ curl będzie dostępny w tej powłoce jako ''​my_curl''​.)
  
 ~~Zadanie.#​.#​~~ ~~Zadanie.#​.#​~~
Linia 921: Linia 948:
 Stwórz pusty plik o nazwie ''​sslkey.log''​ w katalogu ''/​tmp''​ np. komendą: Stwórz pusty plik o nazwie ''​sslkey.log''​ w katalogu ''/​tmp''​ np. komendą:
 <​code>​ <​code>​
-touch /​tmp/​sslkey.log+touch /​tmp/​sslkey.log && chmod a+rw /​tmp/​sslkey.log
 </​code>​ </​code>​
 Następnie w wiresharku wejdź, wybierając z menu //Edycja// pozycję //​Preferencje//,​ Następnie w wiresharku wejdź, wybierając z menu //Edycja// pozycję //​Preferencje//,​
sk2/http.1736376915.txt.gz · ostatnio zmienione: 2025/01/08 23:55 przez jkonczak