Kodowanie formularza
Lekcja 34 z 47 w kursie Sieci komputerowe w terminalu w Coddy.
Gdy używasz -d, curl dodaje nagłówek opisujący format treści żądania:
Content-Type: application/x-www-form-urlencodedTa długa nazwa określa format, którego formularze HTML zawsze używały: pary key=value połączone znakiem &. Serwer odczytuje ten nagłówek i wie, że ma podzielić treść żądania według tych znaków.
Nasuwające się pytanie brzmi: co zrobić, jeśli wartość zawiera & lub =? Trzeba je zakodować, zapisując jako znak procentu i dwie cyfry szesnastkowe. Spacja zmienia się w %20 lub +, a ampersand w %26.
--data-urlencode wykonuje to kodowanie za Ciebie i warto używać go w przypadku wszystkiego, co wpisał człowiek. Wysyłanie surowych danych wejściowych użytkownika za pomocą zwykłego -d sprawia, że pola tajemniczo urywają się przy pierwszym ampersandzie.
Wyzwanie
TrudnyPotwierdź nagłówek wybrany przez curl.
- Uruchom nasłuchujący proces przechwytujący na porcie 9124
- Wyślij żądanie POST z
a=1za pomocą-d - Wyświetl wiersz Content-Type z pliku
req.txt
Oczekiwany wynik:
Content-Type: application/x-www-form-urlencodedDopasuj bez uwzględniania wielkości liter i zakotwicz wzorzec na początku wiersza.
Spróbuj swoich sił
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Sieci komputerowe w terminalu
4Czy jest osiągalny?
ICMP i pingOdczytywanie wyników pingGdy ping kłamieOdmowa połączenia lub przekroczenie limitu czasuPodsumowanie: osiągalność7Wysyłanie danych
POST z -dCo tak naprawdę wysyła -dKodowanie formularzaWysyłanie JSONPUT i DELETEPodsumowanie: zapisywanie danych3Porty i gniazda
Czym jest portDobrze znane portyLocalhostNasłuchiwanie a łączeniePodsumowanie: porty6curl od podstaw do zaawansowania
Wyświetlanie nagłówkówZapisywanie odpowiedziWłasne nagłówkiStatus i czasKody zakończenia curlPodsumowanie: flagi curl9Uwierzytelnianie i debugowanie
Klucze API i BearerUser AgentLimity czasu i ponowieniaAnaliza błęduPodsumowanie: debugowaniePoćwicz samodzielnie: Edytor online Terminal