GŁOŚNIK: Porozmawiajmy o kolejny protocol-- Hypertext Transfer Protokół lub HTTP. Więc rozmawialiśmy o IP oraz TCP w poprzednich filmów. A to są protokoły że dyktują, jak informacje porusza się od maszyny do maszyny i od programu lub usługi do obsługi przez Internet, za pośrednictwem ta sieć routerów i maszyn. Ale to nie jest zwykle cały obraz, prawda? Zwykle, gdy wysyłamy Informacje, program itself-- gdy dane jest otrzymane, na przykład, na przykład, w wiadomości e-mail za pośrednictwem portu TCP 25 lub Żądanie strony internetowej za pośrednictwem portu 80, jest zazwyczaj system zasad nie do przetworzenia, co właśnie otrzymał. I HTTP jest przykładem właśnie takiego protokołu. HTTP to jedyny protokół warstwy aplikacji że będziemy rozmawiać. Ale to jest inny zestaw zasad dyktowanie, jak informacje mają być przekazywane i przetwarzane przez Internet. W szczególności, HTTP określa dokładnie, jak należy złożyć wniosek o strona internetowa i jak dokładnie serwer, maszyna który obsługuje strony internetowe, zapewnia, że ​​informacje powrót do klientów. Więc ten protokół nie faktycznie mają nic z tym, jak informacje przemieszcza się z punktu A do punktu B. To naprawdę reżim for-- to w zasadzie zasady Zaangażowanie do pracy ze strony internetowej, podobny do kiedy ktoś Fale swoich sił w tobie, jesteś ma machać powrotem. To coś w rodzaju Protokół konwencjonalna ludzka. Protokół HTTP po prostu mówi, jeśli chcesz poprosić o internecie Strona, upewnij się, że format wygląd jak this-- rodzaju jak formatowania list biznesu, na przykład. I odpowiedź będzie podobnie się zgodnie z tym protokołem. Istnieją inne protokoły warstwy aplikacji że nie będziemy rozmawiać w teledyskach. Ale to takie rzeczy jak Protokół transferu plików, Simple Mail Transfer Protocol dla wysyłanie e-maili, dystrybucji danych Usługa Pulpit zdalny Protokół RDP, które jest używany, jeśli chcesz do zdalnego dostępu komputer z innego komputera, XMPP, która jest najczęściej znany jako Jabber lub czacie, tak to jest protokół za korzystanie z usług czatu. I wiele, wiele, wiele innych. Dlatego za każdym razem używasz usługa, usługa oczekuje informacji do received-- żądanie być received-- w sposób bardzo szczególności Format i wymagane powrót informacje z powrotem w bardzo określonym formacie, jak również. Więc wróćmy do naszego ilustracji z nas, którzy chcą porozmawiać z internetu. Więc jesteśmy szczęśliwi i chcemy aby przejść do cats.com, prawda? Jeśli więc chodzi tylko do cats.com, możemy powiedzieć coś hej, Widzę stronę główną? I cats.com będzie prawdopodobnie odpowiada, tak, jasne. Proszę bardzo. Tak, że jest człowiekiem sortowania ASK-i-odpowiedzi. Co to wyglądać w HTTP? Cóż, to rzeczywiście rodzaj tłumaczy dość gładko do czegoś takiego. Można powiedzieć, GET / HTTP / 1.1 od gospodarza cats.com. Więc w zasadzie to, co robię tutaj jest z prośbą o www.cats.com/~~pobj strony internetowej. Zwykle pominąć ukośnik w dzisiejszych czasach, ale to po prostu oznacza stronę cats.com jest. Aha, i przy okazji, mam zamiar się przy użyciu serwera HTTP 1.1 do komunikowania się z Tobą. To rodzaj analogiczne do mówiąc, jak, przy okazji, Idę do mówienia w języku francuskim, a przy okazji, Ja będę mówić w języku angielskim. To tylko format protokołu. Jest to także 1.0, który jest nie powszechnie stosowane już. Więc mówię protokołu HTTP 1.1, oraz Chciałbym www.cats.com/~~dobj. Proszę się, że dla mnie. A jeszcze inne informacje, too-- kropka, kropka, kropka tam, która to informacja o kim jesteś, tak cats.com nie wiem, gdzie go wysłać. Ale to są dwie rodzaj części krytycznych Na samym początku z HTTP request-- tak jak podczas uruchamiania List można powiedzieć, drogi, puste. To jest bardzo w duchu podobnym do tego. A jeśli cats.com będzie powiedzieć, oh, pamiętaj, tutaj jesteś. Mogą odpowiedzieć jak this-- Jestem również reagować. Zwracam się również z protokołu HTTP 1.1. Twoje zamówienie zostanie zatwierdzone, 200 OK. Co masz zamiar otrzymują jest HTML, a następnie kropka, kropka, kropka dodatkowe informacje. A na samym dnie wniosek jest rzeczywiście HTML, język znaczników, Zawartość głównej cats.com jest. Więc HTTP / 1.1-- Potwierdzam swój Wniosek został przyjęty przez HTTP 1.1. Twoja prośba została przyjęta. Mogę dać ci to, co chcesz, 200 OK. Czy na pewno chcesz otrzymywać HTML. A potem tu jest HTML prosiłeś. Ale czasami nasze żądania nie zawsze iść całkiem zgodnie z planem. Widzę swoją stronę cats.html? A co, jeśli mówią, że nie mieć stronę cats.html, co wydaje się trochę nierealne bo są cats.com. Można by pomyśleć, że mają cats.html. Ale ok. Tak więc jest to swego rodzaju konwencjonalne interakcja człowiek mamy teraz miał z cats.com. Jak to tłumaczyć? To może być coś dla ciebie znajomo. Nasza prośba wyglądał dokładnie tak samo, wyjątkiem zamiast się ukośnik mamy teraz coraz cats.html. Więc teraz, co w zasadzie to cała Żądanie mówi się proszę dać mi www.cats.com/cats.html. Więc gospodarza i środku częścią tej górnej linii istnieje dokładnie wskazać, jakie strony proszę o. Ale cats.com w tym przypadku nie będzie aby móc odpowiedzieć pozytywnie. Nie wiedzą, że mówimy o. I tak, to jest coś, możesz mieć widać before-- HTTP 1.1 404 Not Found. Nie mogłem znaleźć co pan prosi. Przy okazji, mam zamiar dać powrót niektóre HTML i zwykle, że HTML oznacza zawartość pewnego 404. I w przypadku cats.com, to prawdopodobnie niektóre słodkie koty w koszyku 404 twarzy smutny obok nich, dlatego, że będzie smutny, gdy nie otrzymasz strony to, czego szukasz. To rodzaj podstawy, co protokołu, wnioski protokołu HTTP wygląda jak. Są bardzo podobne do tego jak by zrobić podobny interakcji w konwencji po prostu człowieka z prośbą o coś i odzyskać go i pisanie list i spodziewa się odpowiedzi List w określonym formacie. To dość dużo, co HTTP jest tylko canonicalizing dla wszystkich urządzeń, które chcą uzyskać dostęp strony internetowe, transfery hipertekstowe. Więc linia formie, tego Metoda wersja wniosek celem HTTP, nazywamy linię żądania HTTP. Zazwyczaj pierwszą rzeczą, która jest transmitowane jako część żądania HTTP lub jeśli pytasz HTTP. To coś w rodzaju, jak powiedziałem, mówiąc: droga, puste na górze listu. Wiedzą, że jesteś pisząc do nich list. Więc to jest bardzo podobne do stwierdzenia, wiem że robisz żądania HTTP a to zwłaszcza w formacie oni z prośbą o. Wersja HTTP jest prawdopodobnie zawsze będzie HTTP / 01/01. 1.0 również istnieje, ale nie jest Naprawdę już używane. Dla celów CS50, GET jest prawdopodobnie zawsze co masz zamiar się za pomocą, gdy jesteś w rzeczywistości żądaniach HTTP bezpośrednie. Ale POST jest inną opcję, że jesteśmy Nie będziemy mówić o teraz. A potem wniosek, celem jest jaka strona na serwerze hosta chcesz uzyskać. Jak powiedziałem, że nazwa hosta jest osobna linia, zwykle druga linia ogólny wniosek. I tak razem, gospodarza Nazwa i cel wniosku określić konkretny zasób poszukiwanych. W naszej 404 przykład druga temu ponownie z prośbą o www.cats.com, cats.com bycia gospodarzem. I w moim życzenie linii, Powiedziałem /cats.html. To był mój cel żądania. Więc ogólnie rzecz biorąc Pytałem dla treść lub zasób znajduje w www.cats.com/cats.html~~pobj. A następnie na podstawie tego, czy zasób istnieje i czy serwer może dostarczyć zasób mocy Klienta wniosek, można uzyskać różne kody stanu tyłu. Niektóre z tych kodów stanu widziałeś bo są częścią odpowiedzi. Niektóre z nich, 200 OK, to chyba dość cichy. Prawdopodobnie nigdy nie widziałem strona reagować 200 OK. Wystarczy dostać się na stronę. To nie tak, błąd 404, która jest zwykle dość jasne. Zazwyczaj zobaczyć, że mówi 404. Więc porozmawiajmy o tym, co niektórzy z tych kodów stanu może być. Ponownie, kiedy serwer reaguje na nas, są one będzie reagować statusu wersji HTTP. Zazwyczaj HTTP / 1.1. Co to są te kody stanu będzie? Cóż, możemy uzyskać sukces. Więc w kategorii sukcesu, mamy może uzyskać kod 200 z tekstem OK. Co to znaczy? Cóż, wszystko jest dobrze. Zrobiłeś ważnego wniosku. Oto prawidłowej odpowiedzi. Byłem w stanie dostarczyć dokładnie to, czego chciał. Czasami można dostać inne rzeczy że nie zauważysz od razu ale są nieco awarie. Są one zwane przekierowań. Są dwa spotykane tutaj. 301 Moved Permanently-- co to w praktyce oznacza Strona jest obecnie w nowej lokalizacji. Będzie żyć tam na zawsze. A większość przeglądarek automatyczne przekierowanie. Więc nigdy nie będziesz naprawdę zobaczyć 301, albo, chyba, że ​​jesteś przy użyciu naprawdę out-of-date Przeglądarka ewentualnie ponieważ odpowiedź 301 jest częścią kropka, kropka, kropka odpowiedzi 301. Informuje także, gdzie nowa strona jest. I tak większość przeglądarek po prostu przekierować cię tam, zakładając, że chcesz tam iść. Czasami można również uzyskać 302 znalezionych. A ten rzeczywiście może jeszcze zobaczyć od czasu do czasu. Czasami strona chwilowo się poruszyć. Więc to nie będzie wbudowany w wniosek informując przeglądarkę aby trwale zmienić w każdej chwili widzi wniosek, że ci aby go zmienić na coś innego. Więc można zobaczyć 302 Znalezione, które w zasadzie mówi, że to strona mieszka gdzie indziej. Ale to nie będzie żyją tam na zawsze. Prawdopodobnie będzie to w końcu iść tam, gdzie myślisz, że jest. Następnie otrzymasz rzeczy jak błędów klienta. Więc to są te, które już prawdopodobnie widział, teraz. Prawdopodobnie nie widziałem czy to przez 200s 300s, ale prawdopodobnie jesteś zna 400s. I to, co będziemy mówić o w drugim, 500s, jak również. Można zobaczyć 401 Nieautoryzowane. Zazwyczaj oznacza to, że jesteś próby uzyskania dostępu do strony, ale nie jesteś zalogowany. Więc spróbuj i przejdź do niektórych profilu lub coś na Facebooku lub spróbować i dostęp some-- jesteś w pracy. Próbujesz uzyskać dostęp do czegoś w internecie twojego dzieła, ale nie jesteś zalogowany. Nie możesz znaleźć na stronie. Możesz dostać 401 nieuprawnione, co oznacza, że ​​prawdopodobnie będzie w stanie spełnić tego żądania, ale najpierw trzeba zalogować się, aby to zrobić. Odwrotnie, można dostać 403 Forbidden, co jest tak naprawdę nie robi znaczenia, jeśli nie jesteś zalogowany lub nie. Wniosek ten nie jest dozwolone. Zasób istnieje na serwerze. Ale nie wolno do niego dostęp. To wewnętrzne, które zwykle pliki Mieszkam na serwerze z różnych powodów jednak nie mają na celu być dostępne od świata zewnętrznego, i tak są one zakazane. Żyją tam. Nie mówię, że nie mogę go znaleźć. Ale ja mówię, że nie może dać go do Ciebie. I nie ma znaczenia, czy nie jesteś zalogowany lub nie. I wtedy oczywiście, bardzo często 404 Not Found. Plik nie istnieje na serwerze. Chciałbym, aby zaspokoić Twój wniosek, ale nie mogę. Ty też czasem zobaczyć serwer błędy, najczęściej na ogół jest 500 Internal Server Error, które w rzeczywistości nie powiedzieć nic w ogóle o tym, co poszło nie tak. Ale to nie jest właściwie robisz błąd w swoim wniosku. To rzeczywiście serwer braku dostarczyć na żądanie jakoś. Więc 500 jest ogólna reakcja. Zobaczysz również coś jak Usługa niedostępna, które uważam, że jest kod 503. I brama Timeout-- jeśli Czy kiedykolwiek stronę tylko siedzieć załadunek i załadunku i załadunek i nigdy nie wiesz, czy to będzie obciążenia, a następnie w końcu to tylko says-- po prostu rezygnuje. To jest 504 Brama Timeout. Serwer chciał wykonać żądania, ale coś poszło nie tak na side-- serwerze nie na side-- do spowodować, że będzie problem. Teraz możemy w końcu tu historię, ale co ja właściwie teraz zrobić jest Zamierzam otworzyć moja przeglądarka i pokazać, jak można być w stanie zobaczyć niektóre z tych kodów stanu nawet jeśli nie na ogół je zobaczyć. I mamy zamiar to zrobić poprzez Spojrzenie na niektórych narzędzi programistycznych. Dobrze więc oto jestem teraz w oknie mojej przeglądarki. I chcę, aby dowiedzieć się trochę więcej o tych żądań HTTP. Jak mogę know-- pewnością wiemy, czy Strona goes--, gdy coś pójdzie nie tak, mamy 404. Wszyscy widzieliśmy, że. Nie musimy się pokazać, że. Ale jakie są inne te? I jak widzimy te wnioski w akcji? Tak więc pierwszą rzeczą, którą mam zamiar zrobić, to otworzyć narzędzi dla programistów. Tak Narzędzia programistyczne są wbudowane w większości nowoczesnych przeglądarek i pozwala nam widzieć rzeczy że nie inaczej see-- jakąś informację dodatkową rodzaju są przesyłane pod naszym internecie wnioski. Używam tutaj Google Chrome. I otworzyć Narzędzia dla deweloperów w Chrome, po prostu hit F-12, i to się dzieje, aby otworzyć go na bok. Kiedyś wpisać prośbę, będę powiększyć więc możemy zobaczyć, co się tutaj dzieje. Ale to, co mam zamiar zrobić w mojej przeglądarce bar jest-- i będę powiększać ponad here-- Będę się z prośbą do www.google.com. Wszyscy zapewne żądanie to wcześniej. Mam zamiar naciśnij Enter. Teraz, tutaj w moim Developer Narzędzia, wybrałem kartę Sieć. I można zauważyć wiele rzeczy tutaj. Spójrz na these-- 200 OK, 200 OK, niektóre z tych kodów stanu wymyślanie. Nie wiem, dlaczego Dostaję 302 Znaleziono. Nie zdawałem sobie sprawy, że widzę, że jeden. Ale w zasadzie zauważyć, że dość wiele, jeśli chodzi o moją request-- Google Zrobiłem to bardzo prosta Wniosek o stronie Google. Oraz w procesie dostarczanie moją prośbę, Google najwyraźniej zrobił dużo innych wniosków w moim imieniu. Ale zrobiłem zamówienie Pobierz dla Google Strona i Dostaję dużo 200 OKS. Nie widzę 200 OK ekran, ale jestem coraz wiele wniosków, które zostały wykonane. Jeszcze jedno, że jestem całkiem upewnić się uda jest-- dla tych z Państwa, którzy są naprawdę starej szkoły, Może wiesz, że Facebook to Nie zawsze na Facebook.com. W swoich początkach było w wwww.thefacebook.com. Najwyraźniej nie mógł uzyskać dostępu do Facebook.com już od jakiegoś czasu. A więc to, co Spodziewam tutaj jest, aby uzyskać informacje. I zobaczymy, czy to miski na zewnątrz. Co Czekam tutaj jest uzyskanie informacji że Facebook został przeniesiony na stałe z thefacebook.com na Facebook.com. Więc spodziewam się gdzieś w górnej części mojej prośby na moich Developer Tools uzyskać 301 powiadomienia że Facebook został przeniesiony na stałe. Ponownie, nie będzie widać 301 na ekranie mojej przeglądarki. A ponieważ jest to do 301, jest to stałe pojedynek. Moja przeglądarka jest, że to nowoczesna przeglądarka, prawdopodobnie będzie przekierować mi Facebook.com tak. Ale zobaczmy, co się stanie. A teraz mam zamiar przejść do thefacebook.com. A Tak, tam jest na samym szczycie. Nie odszedł, ale to było. Pozwól mi przejść tutaj. Tu w górze. I skierował wniosek do thefacebook.com, i dostaję odpowiedź że ta strona została przeniesiona na stałe. A następnie 307 tutaj jest wewnętrzne przekierowanie. A więc to, co jest w rzeczywistości przenieśli mnie do znacznie bardziej zaznajomieni www.facebook.com. Więc te kody odpowiedzi robić nadal stało, nawet jeśli ich nie widzę. nie mam zamiaru ilustrują 401, 403, 404, dlatego, że prawdopodobnie widział te w różnych punktach. I 500, chciałbym po prostu być rodzaj of-- że będziemy mieć szczęście jeśli dostał 500, ponieważ nie wiemy, co Serwery są obecnie w dowolnym miejscu. Ale te kody zrobić istnieje i jest na to sposób aby uzyskać do nich dostęp, nawet jeśli tego nie zrobimy zobaczyć je na własne oczy w naszych systemach. Jestem Doug Lloyd. To CS50.