>> SPRECHER: Lassen Sie uns über ein weiteres Gespräch protocol-- das Hypertext Transfer
Protokolls oder HTTP.
Also wir über IP gesprochen und TCP in vorherigen Videos.
Und das sind Protokolle , die bestimmen, wie Informationen
bewegt sich von Maschine zu Maschine und von Programm zu Programm oder eine Dienstleistung
über das Internet, über Dieses Netz von Routern und Maschinen.
>> Aber das ist in der Regel nicht das gesamte Bild, nicht wahr?
Normalerweise, wenn wir senden Informationen, das Programm
itself--, wenn Daten empfangen wird, das heißt zum Beispiel,
in E-Mails über TCP-Port 25 oder eine Web-Seite Anfrage über Port 80,
es in der Regel ein System von Regeln gibt zu verarbeiten, was ich bekommen habe.
Und HTTP ist ein Beispiel, gerade eines solchen Protokolls.
>> HTTP ist das einzige Protokoll der Anwendungsschicht
dass wir gehen, um darüber zu sprechen.
Aber es ist ein weiterer Satz Regeln diktieren, wie
Informationen zu übertragen ist und über das Internet verarbeitet.
Insbesondere HTTP gibt an, wie genau
muss man einen Antrag auf machen eine Web-Seite und genau, wie
ein Server, ein Maschinen dass hostet Web-Seiten,
liefert diese Informationen zurück zum Kunden.
>> So ist dieses Protokoll nicht eigentlich nichts
mit, wie Informationen zu tun bewegt sich von Punkt A
nach Punkt B. Es ist wirklich das Regelsystem
for-- es ist im Grunde die Regeln Engagement für die Arbeit mit einer Web-Seite,
ähnlich wie wenn jemand Wellen ihre Hand an Sie,
sollen Sie zurückwinken.
Das ist eine Art konventionellen menschlichen Protokoll.
HTTP-Protokoll sagt nur, wenn Sie eine Web anfordern möchten
Seite sicher, dass Ihr Format aussieht wie this-- Art wie Formatierungs
ein Geschäftsbrief, zum Beispiel.
Und die Antwort wird in ähnlicher Weise kommen nach diesem Protokoll.
Es gibt auch andere Anwendungsschicht-Protokolle
dass wir nicht zu gehen reden über in Videos.
Aber dazu gehören Dinge wie das File Transfer Protocol,
Simple Mail Transfer Protocol für E-Mails, die Datenverteilung
Service, Remote Desktop Protocol, RDP, die
wird verwendet, wenn Sie aus der Ferne zugreifen möchten Ihr Computer von einem anderen Computer,
XMPP, die häufig als Jabber oder Chat bekannt,
so ist dies das Protokoll für die Verwendung von Chat-Diensten.
Und es gibt viele, viele andere.
>> Also jedes Mal, die Sie verwenden ein Service, der Service
rechnet Informationen um eine Anfrage received-- werden
received-- in einem zu sein ganz bestimmten Format
und ist erforderlich, um geben Informationen zurück
in einer sehr bestimmten Format als auch.
>> Also gehen wir zurück zu unserer Darstellung von uns wollen, um mit dem Internet zu sprechen.
So sind wir glücklich, und wir wollen, auf cats.com gehen, oder?
So, wenn wir gerade im Gespräch mit cats.com, wir könnten sagen etwas wie hey,
kann ich Ihre Startseite sehen?
Und cats.com wird wahrscheinlich zu reagieren, ja, sicher.
Bitte schön.
Also das ist eine menschliche Art der Fragen-und-Antwort.
>> Wie sieht das in HTTP?
Nun, es ist eigentlich ganz übersetzt ziemlich sauber, so etwas zu.
Wir könnten sagen, GET / HTTP / 1.1 vom Host cats.com.
Also im Grunde, was ich hier mache ist Bitte um die Web-Seite www.cats.com/.
Wir in der Regel lassen Sie den Schrägstrich gerade heute, aber das wäre
meine Homepage cats.com ist.
>> Oh, und übrigens, ich werde werden unter Verwendung von HTTP-Version
1.1, um mit Ihnen zu kommunizieren.
Das ist eine Art analog zu sagen, wie, nebenbei bemerkt,
Ich werde sprechen in Französisch oder durch die Art und Weise,
Ich werde sein Sprechen in Englisch.
Das ist nur das Format des Protokolls.
Es ist auch 1.0, das ist, üblicherweise nicht mehr verwendet.
Also ich spreche HTTP 1.1 und Ich möchte www.cats.com/.
Bitte setzen Sie sich, dass für mich.
>> Und dann gibt es andere Informationen, too-- den Punkt, Punkt, Punkt gibt,
welches Informationen über wer Sie sind so cats.com
würde wissen, wo sie zu senden.
Aber das sind die beiden Art von kritischen Teilen
ganz am Anfang einer HTTP request--
genau wie beim Starten ein Schreiben Sie sagen, liebe, leer.
Dies ist in Geist sehr ähnlich.
>> Und wenn cats.com Nahmen sagen, oh, sicher, hier gehen Sie.
Sie könnten, wie zu reagieren this-- ich auch reagiert.
Ich spreche auch HTTP 1.1.
Ihre Anfrage genehmigt wird, 200 OK.
Was Sie gerade sind erhalten, ist HTML und dann
Punkt, Punkt, Punkt einige zusätzliche Informationen.
Und ganz am Ende des Anfrage ist eigentlich die HTML,
Die Markup-Sprache, die Inhalt der Homepage cats.com ist.
>> So HTTP / 1.1-- Ich erkenne deine Anfrage mittels HTTP 1.1 akzeptiert.
Ihr Antrag wurde genehmigt.
Ich kann Ihnen, was Sie wollen, 200 OK.
Sie sind dabei, HTML zu erhalten.
Und dann ist hier die HTML, die Sie angefordert.
>> Aber manchmal unsere Wünsche nicht gehen immer ganz nach Plan.
Kann ich Ihre cats.html Seite sehen?
Nun, was ist, wenn sie sagen, wir haben keine cats.html Seite,
das scheint Art von unrealistischen weil sie cats.com.
Man könnte meinen, sie würden cats.html haben.
Aber ok.
Das ist also eine Art der herkömmliche menschliche Interaktion
wir haben jetzt mit cats.com hatten.
Wie funktioniert das Übersetzen?
>> Dies könnte etwas vertraut sein.
Unsere Anfrage sah genau das gleiche, mit der Ausnahme, anstatt sich Schrägstrich
wir bekommen jetzt cats.html.
So, jetzt, was im Grunde diese ganze Anfrage sagt, ist, bitte gib mir
www.cats.com/cats.html.
Also dem Host und der Mitte Teil dieser oberen Zeile
es zeigen, gerade Welche Seite Ich bitte um.
Aber cats.com in diesem Fall wird nicht in der Lage, positiv zu reagieren.
Sie wissen nicht, wir reden.
Und so ist dies etwas, die Sie haben könnten gesehen before-- HTTP 1.1 404 Not Found.
Ich konnte nicht finden, was Sie fragen wurden.
By the way, ich werde dir geben zurück einige HTML, und in der Regel, dass HTML
ist der Inhalt von einigen 404-Seite.
Und im Fall von cats.com, ist es wahrscheinlich
einige nette Katzen in einem Korb mit ein trauriger 404 Gesicht neben ihnen,
weil du sein wirst traurig, wenn Sie nicht Seite zu gelangen
dass Sie gesucht haben.
>> Das ist irgendwie die Grundlagen dessen, was ein Protokoll, das HTTP-Protokoll-Anfragen
aussehen.
Sie sind wirklich ähnlich, wie wir würde eine ähnliche Interaktion machen
in nur menschliche Konventionen um etwas bitten
und wieder zurück bekommen es oder Schreiben ein Buchstabe und erwartet eine Antwort
Schreiben in einem bestimmten Format.
Das ist ziemlich viel, was HTTP ist nur canonicalizing
für alle Geräte, die Zugriff wünschen Web-Seiten, Hypertext-Überweisungen.
>> So eine Zeile der Form, das der Verfahren Anfrage Ziel HTTP-Version,
wird als eine HTTP-Anforderung Linie.
Es ist in der Regel das erste, was ist als Teil einer HTTP-Anforderung übertragen
oder wenn Sie für HTTP fragst.
Es ist irgendwie wie, wie gesagt, zu sagen Lieber, blank an der Spitze Ihren Brief.
Sie wissen, dass Sie Schreiben Sie einen Brief schreiben.
Also das ist sehr ähnlich zu sagen, ich weiß,
dass sie machen eine HTTP-Anforderung und dies ist das besondere Format
sie sind für die Nachfrage.
>> HTTP-Version ist wahrscheinlich immer zu HTTP / 1.1 sein.
1.0 besteht auch, ist aber nicht wirklich mehr verwendet.
Zum Zwecke der CS50, GET ist wahrscheinlich immer
was du sein wirst mit, wenn Sie tatsächlich sind
Direktverkauf HTTP-Anfragen.
Aber POST ist eine weitere Option, die wir sind nicht darüber im Augenblick sprechen.
Und dann Anfrage-Ziel welche Seite auf dem Server des Hosts
Sie möchten, um zu bekommen.
Wie ich sagte, dass Hostnamen ist eine separate Leitung, in der Regel
Die zweite Zeile des Gesamt Antrag.
Und so zusammen, die Host- Namen und die Anforderung Ziel
geben Sie einen spezifischen Ressourcen gesucht.
In unserem 404 beispielsweise vor einer Sekunde, I wurde erneut fordern www.cats.com,
cats.com wobei der Wirt.
Und in meinem Anforderungsleitung, Ich sagte /cats.html.
Das war mein Wunsch Ziel.
Also insgesamt war ich für die fragen die Inhalte oder die Ressource befindet,
bei www.cats.com/cats.html.
>> Und dann, ob auf der Grundlage die Ressource vorhanden
und ob der Server liefern kann die Ressource nach dem Client-
Anfrage, erhalten Sie möglicherweise verschiedenen Statuscodes zurück.
Einige dieser Statuscodes Sie gesehen haben denn sie sind Teil der Antwort.
Einige von ihnen, 200 OK, sind wahrscheinlich ziemlich still.
Wahrscheinlich haben Sie noch nie gesehen a Seite 200 reagieren Sie auf OK.
Sie bekommen nur die Seite.
Es ist nicht wie einen 404-Fehler, die in der Regel ziemlich klar.
Sie sehen in der Regel, dass sie sagt, 404.
>> Also lassen Sie uns über das, was einige sprechen dieser Statuscodes sein könnte.
Wiederum, wenn der Server reagiert auf uns, sie sind
gehen, um HTTP-Versionsstatus zu reagieren.
In der Regel HTTP / 1.1.
Was sind das Statuscodes sein wird?
Na ja, könnten wir zu einem Erfolg zu bekommen.
Also für den Erfolg der Kategorie, die wir könnte Code 200 erhalten, mit dem Text OK.
Was bedeutet das?
Nun, das ist alles, was gut ist.
Sie haben eine gültige Anforderung.
Hier ist eine gültige Antwort.
Ich war in der Lage zu liefern, genau das, was Sie wollten.
>> Manchmal werden Sie vielleicht andere Dinge dass Sie nicht sofort bemerken
jedoch sind etwas Ausfälle.
Sie sind aufgerufen Umleitungen.
Es gibt zwei gebräuchlichsten hier.
301 Moved Permanently-- was dieser im Grunde bedeutet,
ist die Seite ist jetzt an einem neuen Standort.
Es wird für immer dort zu leben.
Und die meisten Browser automatisch umleiten Sie.
So dass Sie nie wirklich sehen werden a 301, entweder, es sei denn, du bist
mit einem wirklich out-of-date Browser möglicherweise
weil die 301-Antwort ist Teil der der Punkt, Punkt, Punkt der 301 Antwort.
Darüber hinaus erfahren Sie, wo die neue Seite.
Und so die meisten Browser nur leiten Sie es,
vorausgesetzt, dass Sie dorthin gehen wollen.
>> Manchmal erhalten auch Sie 302 gefunden.
Und dieser Sie tatsächlich vielleicht immer noch gelegentlich.
Manchmal bewegen Seiten vorübergehend.
So wird es nicht in gebaut werden der Antrag erzählt die Browser
zu jeder Zeit dauerhaft zu ändern er die Anforderung sieht, dass Sie
vornehmen, um sie auf etwas anderes ändern.
So können Sie 302 sehen könnte Gefunden, die im Grunde
sagt diese Seite lebt woanders.
Aber es ist nicht zu gehen leben dort für immer.
Es wird schließlich wohl gehen zurück, wo Sie denken, es ist.
>> Dann werden Sie die Dinge wie Client-Fehler.
Das sind diejenigen, die Sie haben wahrscheinlich gesehen, jetzt.
Sie haben wahrscheinlich noch nicht gesehen haben die 200er oder 300er,
aber du bist wahrscheinlich vertraut mit den 400s.
Und das ist, was wir reden etwa in einem zweiten, 500s als gut.
>> Sie konnten sehen, 401 Unauthorized.
In der Regel bedeutet dies, du bist versucht, eine Seite zu besuchen,
aber Sie sind nicht eingeloggt.
Also Sie versuchen und gehen Sie zu einigen Profil oder etwas auf Facebook
oder Sie versuchen, Zugang some-- Sie bei der Arbeit.
Sie versuchen, etwas zugreifen im Internet Ihre Arbeit,
aber Sie sind nicht angemeldet.
Sie können nicht sehen, die Seite an.
Vielleicht haben Sie ein 401 unerlaubten, was bedeutet, dass wir wahrscheinlich
in der Lage, diese Anforderung zu erfüllen, Aber zuerst müssen Sie eingeloggt sein, um dies zu tun.
>> Umgekehrt könnte man 403 bekommen Verbotene, das ist es nicht wirklich
Rolle, ob Sie in oder angemeldet bist nicht.
Dieser Antrag ist nicht zulässig.
Die Ressource auf dem Server existiert.
Aber Sie sind nicht gestattet, darauf zuzugreifen.
Dieser ist in der Regel interne Dateien, leben auf dem Server aus verschiedenen Gründen
sind aber nicht dazu bestimmt sind von der Außenwelt zugegriffen wird,
und so sind sie verboten.
Sie leben dort.
Ich sage nicht, ich kann es nicht finden.
Aber ich sage, kann ich nicht geben es Ihnen.
Und es ist egal, ob Sie oder nicht angemeldet sind.
Und dann natürlich die sehr häufig 404 nicht gefunden.
Die Datei nicht auf dem Server vorhanden.
Ich möchte zu erfüllen Ihre Anfrage, aber ich kann nicht.
>> Sie manchmal auch zu sehen Server Fehler, die am häufigsten in der Regel
wobei 500 Internal Server Error, die nicht wirklich sagen, alles, was
überhaupt zu wissen, was schief gegangen ist.
Aber es ist nicht wirklich leisten Sie ein Fehler in Ihrer Anfrage.
Es ist eigentlich der Server andernfalls über den Antrag irgendwie zu liefern.
Also 500 ist die allgemeine Antwort.
>> Sie sehen auch etwas, wie Dienst nicht verfügbar,
was ich glaube, ist Code 503.
Und Gateway-Timeout-- wenn Sie jemals einen Seite hatte gerade
sitzen da Be- und Lade- und Lade
und man weiß nie, wenn es zu gehen Last und dann schließlich es gerade says--
gibt gerade.
Das ist eine 504-Gateway Zeitüberschreitung.
Die Server-aufgerufenen führen Sie Ihre Anfrage,
aber etwas schief gelaufen auf dem Server side--
nicht auf Ihrem side-- zu dazu führen, dass ein Problem zu sein.
Jetzt konnten wir die Geschichte hier zu Ende, aber was ich wirklich jetzt tun
ist werde ich eröffnen meinem Browser und zeigen Ihnen,
wie Sie vielleicht in der Lage sein zu sehen, einige dieser Statuscodes
auch wenn Sie nicht in der Regel sehen sie nicht.
Und wir werden, dass, indem sie tun einen Blick auf einige Entwickler-Tools.
>> In Ordnung Also bin ich hier jetzt in meinem Browserfenster.
Und ich möchte ein wenig lernen Weitere Informationen zu diesen HTTP-Anfragen.
Wie kann ich mit Sicherheit wissen-- wir wissen, ob ein Seite goes--, wenn etwas schief geht,
wir bekommen einen 404.
Wir haben alle gesehen.
Wir brauchen nicht zu illustrieren.
Aber was sind einige andere, die?
Und wie würden wir sehen, diese Anträge in Aktion?
>> Also erste, was ich zu gehen zu tun ist, eröffnen Developer Tools.
So Developer Tools gebaut werden in den meisten modernen Browsern
und ermöglichen es uns, Dinge zu sehen, dass wir nicht anders
see-- einige zusätzliche Informationen Art wobei unterhalb unserer Web übertragen
Anfragen.
Ich verwende Google Chrome hier.
Und Developer Tools öffnen in Chrome, die Sie gerade getroffen F-12,
und es wird zu öffnen es oben auf der Seite.
Sobald ich den Antrag geben, werde ich vergrößern damit wir sehen können, was hier vor sich geht.
Aber was werde ich in meinem Browser zu tun Bar ist-- und ich werde über hier-- Vergrößern
Ich werde einen Antrag auf www.google.com zu machen.
Wir alle haben wahrscheinlich gemacht Anfrage vor.
Ich werde drücken Sie Enter.
>> Nun, hier in meinem Entwickler Werkzeuge, habe ich auf die Registerkarte Netzwerk ausgewählt.
Und Sie haben eine Menge Dinge bemerken hier.
Schauen Sie sich these-- 200 OK, 200 OK, einige dieser Statuscodes kommen.
Ich weiß nicht, warum ich bin immer 302 gefunden.
Mir war nicht klar, ich würde, dass man sehen.
Aber grundsätzlich feststellen, dass ziemlich viel, in Bezug auf meine Google request--
I eine sehr einfach gemacht Antrag auf Google-Seite.
Und in dem Verfahren Liefern meine Bitte,
Google hat offenbar machte eine Menge andere Anfragen in meinem Namen.
>> Aber ich habe eine GET-Anforderung für Googles gemacht Seite und ich bekomme eine Menge von 200 OKs.
Ich bin nicht zu sehen 200 OK auf meinem Bildschirm, aber ich bin immer
eine Menge von Anforderungen, die gemacht wurden.
Noch ein, dass ich bin mir ziemlich sicher funktionieren wird
ist-- für diejenigen unter Ihnen, sind wirklich alten Schule,
Sie wissen vielleicht, dass Facebook war nicht immer auf Facebook.com.
In seinen frühen Tagen war es bei wwww.thefacebook.com.
Sie konnten offenbar nicht anmelden um Facebook.com eine ganze Weile.
>> Und so, was ich erwarte hier ist, um Informationen zu erhalten.
Und wir werden sehen, ob diese Pfannen aus.
Was ich hier erwartet ist es, Informationen zu erhalten
dass Facebook hat dauerhaft verschoben von thefacebook.com auf Facebook.com.
Also ich bin irgendwo erwartet in der Nähe der Spitze von meinem Anfragen
mehr als in meinem Developer Tools um eine 301 Benachrichtigung erhalten
dass Facebook hat dauerhaft verschoben.
Auch hier werde ich nicht sehen 301 meinem Browser-Bildschirm.
Und weil es ein 301, es ist eine ständige Bewegung.
Ihr Browser, ist, dass es ist ein moderner Browser,
ist wahrscheinlich zu umzuleiten mir, Facebook.com sowieso.
Aber mal sehen, was passiert.
>> Und jetzt bin ich zu gehen gehen Sie zu thefacebook.com.
Und ja, es ist dort ganz oben.
Er ging weg, aber es war da.
Lassen Sie mich nach oben hier.
Gerade hier an der Spitze.
Ich habe eine Anfrage zu thefacebook.com gemacht, und ich bin immer eine Antwort
, dass diese Seite wurde dauerhaft verschoben.
Und dann 307 ist hier eine interne Umleitung.
Und dies ist, was hat eigentlich zog mich in die viel mehr
vertraut www.facebook.com.
>> Also diese Antwortcodes zu tun noch passieren, auch wenn wir sie nicht sehen.
Ich gehe nicht zu illustrieren 401, 403, 404,
weil Sie wahrscheinlich gesehen haben diejenigen, die an verschiedenen Punkten.
Und 500, würde ich nur sein, Art von-- würden wir Glück haben
wenn bekam einen 500, weil wir nicht wissen, was Server sind derzeit überall.
Aber diese Codes zu tun vorhanden ist, und es gibt eine Möglichkeit,
auf sie zugreifen, auch wenn wir es nicht tun sehen, wie sie aus erster Hand auf unseren Systemen.
Ich bin Doug Lloyd.
Dies ist CS50.