Różnice między wybraną wersją a wersją aktualną.
| 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//, | ||