Niezależnie od tego, czy buduje i debugowanie prostych żądań, czy złożonych interfejsów API, Curl jest doskonałym narzędziem w Twoim zestawie umiejętności.
Ten samouczek zbada koncepcję przekierowań HTTP i sposób, w jaki możemy użyć Curl, aby śledzić je na żądanie.
Co to jest przekierowanie HTTP?
Przekierowanie HTTP, powszechnie znane jako przekierowanie, odnosi się do techniki, w której dany adres zwraca instrukcję przekierowania, zamiast zwracać żądane zasoby lub dokument.
Zasadniczo to, co sugeruje nazwa. Gdy klient żąda określonego zasobu, zamiast serwera odpowiadającego wyniku zapytania, mówi klientowi, aby szukał zasobu w innej lokalizacji.
Poniższy obraz pokazuje podstawową koncepcję przekierowania HTTP.
Źródło: Mozilla Developer Network.
Poniżej znajduje się prosty nagłówek przekierowania HTTP.
HTTP/1.1 301 poruszonych na stałe
Lokalizacja: https: // linuxhint.com
W powyższym przykładzie serwer mówi nam, że adres http: // linuxhint.com przeniósł się na stałe do https: // linuxhint.com
Istnieją dwa główne rodzaje przekierowań:
Stałe przekierowania
Są to przekierowania, które trwają i nie są ważne dla tego konkretnego żądania. Stały przekierowanie mówi klientowi, że żądany zasób na stałe przeniósł się na nowy adres. Stałe przekierowanie jest oznaczone przez kod stanu HTTP 301.
Tymczasowe przekierowania
Z drugiej strony tymczasowe przekierowania informują klienta, że serwer chciałby przekierować nowy zasób. Jednak ten przekierowanie nie jest trwałe i nie powinno buforować tego przekierowania. Oznacza to, że przekierowanie nie będzie tam później.
Ten rodzaj przekierowania jest oznaczony przez kod stanu HTTP 302.
Teraz mamy podstawy przekierowań HTTP, nauczmy się, jak powiedzieć Curl, aby śledzić reakcję przekierowania.
Curl śledź przekierowanie
Curl pozwala śledzić przekierowanie za pomocą flagi -L. Ta flaga pochodzi z nagłówka lokalizacji w operacji przekierowania.
Składnia poleceń jest jak pokazano:
$ curl -l [url]
Przykładem prostego przekierowania Curl jest jak pokazano:
curl -l http: // linuxhint.com
Zestaw curl max przekierowuje
Kiedy pozwalasz na przekierowania Curl, może wykonywać do 50 przekierowań. Możesz jednak ustawić niestandardową wartość przekierowania za pomocą parametru -max -Redirs.
Składnia jest jak pokazana:
$ curl -l - -Max -Redirs [liczba] [url]
Na przykład, aby ustawić maksymalnie 5 przekierowań, możemy uruchomić:
$ curl -l - -Max -Redirs 5 http: // Linuxhint.com
Curl włącza nieskończone przekierowania
Nie ma wątpliwości, że Curl spróbuje cię chronić przed wykonywaniem nieskończonych przekierowań. Stąd, jeśli złożycie wniosek, które zwróci więcej niż 20 przekierowań, Curl automatycznie anuluje żądanie.
Możesz jednak zastąpić tę opcję, ustawiając parametr -max -Redirs na -1
Składnia jest jak pokazana:
$ curl -l - -Max -Redirs -1 [url]
Curl Zapobiegaj konwersji metody HTTP
Jeśli napotkasz przekierowanie podczas składania żądania pocztowego HTTP, Curl konwertuje żądanie na żądanie GET.
Możesz jednak zapobiec konwersji Curl, aby uzyskać, gdy napotkał ono 301, 302 i 303 przekierowawcze za pomocą parametru -post [status_code].
Pokazana jest składnia:
$ curl -l - -post [status_code] [url]
Na przykład, aby zapobiec konwersji Curl w celu uzyskania, gdy napotyka przekierowanie 301:
$ curl -l - -post301 [url]
Curl Authenticate przekierowanie
Przy składaniu wniosku może być konieczne dostarczenie poświadczeń autoryzacji. Jeśli jednak Curl napotknie przekierowanie, zapobiegnie wysłanie poświadczeń ze względów bezpieczeństwa.
Możesz to zastąpić, ustawiając parametr -lokacja Trust.
Składnia jest jak pokazana:
$ curl -l -Lokalia -Trusted -User „Użytkownik: hasło”
Wniosek
Korzystając z tego samouczka, odkryliśmy, jak wykonywać operacje przekierowania za pomocą Curl. Opisaliśmy takie pojęcia, jak po prostym przekierowaniu, ustawienie liczby przekierowań, nieskończone przekierowania i uwierzytelnianie Curl w przekierowaniu.