Schemat wybiera port
Lekcja 39 z 47 w kursie Sieci komputerowe w terminalu w Coddy.
http:// i https:// różnią się czymś więcej niż jedną literą. Schemat decyduje o dwóch rzeczach: który domyślny port zostanie użyty — 80 czy 443 — oraz czy przed wysłaniem czegokolwiek zostanie rozpoczęte uzgadnianie TLS.
To uzgadnianie jest pierwszą rzeczą, która się dzieje, zanim zostanie wysłana jakakolwiek linia żądania. Obie strony uzgadniają szyfrowanie, a serwer przedstawia swój certyfikat. Dopiero wtedy znany ci HTTP zostaje wysłany w zaszyfrowanym kanale.
Port obsługuje więc TLS albo nie. Jeśli zażądasz https:// z portu obsługującego zwykły HTTP, nie ma uprzejmego mechanizmu awaryjnego: uzgadnianie natychmiast kończy się niepowodzeniem, a curl zgłasza kod wyjścia 35 — błąd połączenia SSL.
Warto to rozpoznać, bo może wyglądać, jakby serwer nie działał, choć obsługuje zwykły HTTP pod niemal identycznym adresem.
Wyzwanie
TrudnyPoproś zwykły serwer HTTP o TLS i obserwuj, jak odmawia.
- Udostępnij folder na porcie 9129 w zwykły sposób, czyli przez HTTP
- Wyślij żądanie do
https://127.0.0.1:9129/i wypisztls=, a następnie kod wyjścia curl
Oczekiwany wynik:
tls=3535 to kod curl oznaczający błąd połączenia SSL.
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
5HTTP od podstaw
Budowa żądaniaMetody żądańKody statusuNagłówki odpowiedziTworzenie odpowiedziPodsumowanie: podstawy HTTP8HTTPS i TLS
Dlaczego HTTPSSchemat wybiera portCertyfikaty i zaufanieGdy TLS zawodziPodsumowanie: HTTPS3Porty 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