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.