SPEAKER:それでは、別についてお話しましょう ハイパーテキスト転送をprotocol-- プロトコル、またはHTTP。 だから我々は、IPについて話してきました 前のビデオでTCP。 そして、それらはプロトコルです それはどのように情報を指示します マシンにマシンから移動し、 プログラムからプログラムまたはサービスへ 経由して、インターネット経由でサービスに ルータと機械のこのネットワーク。 しかし、それは通常はありません 全体像は、右? 通常、私たちが送信するとき 情報、プログラム itself--データであります たとえば、たとえば、受信されました TCPポート25を介して、または電子メールで ポート80を介してウェブページ要求、 ルールのシステムが通常あります 私が受け取ったものを処理します。 そして、HTTPは一例です ちょうどそのようなプロトコルの。 HTTPのみです アプリケーション層プロトコル 我々はについて話をするつもりだという。 しかし、それは別のセットです どのように口述のルール 情報を送信します 、インターネットを介して処理。 具体的には、HTTP 正確にどのように指定します 1は、要求を行う必要があります Webページと正確にどのように サーバ、マシン つまり、Webページをホストします その情報を配信します クライアントにバックします。 だから、このプロトコルにはありません 実際には何を持っています どのような情報をどうします 点Aから移動 点Bにそれは本当にです 規則の体系 それは基本的にルールですfor-- Webページで作業するための係合、 ときに誰かに似て あなたに波に手を、 あなたは、バック振っことになっています。 それは一種のです 従来の人間のプロトコル。 HTTPプロトコルだけであれば、言います あなたがウェブを依頼したいです ページ、必ずあなたのフォーマットルックスを作ります 以下のような書式のthis--一種のような 例えばビジネスレター、。 そして、応答が同様になります このプロトコルに従って来ます。 他のがあります。 アプリケーション層プロトコル 我々はするつもりはないこと ビデオで話。 しかし、これらはのようなものが含まれます ファイル転送プロトコル、 以下のための簡易メール転送プロトコル 電子メールを送信、データ配信 サービス、リモートデスクトップ プロトコル、RDP、これ リモートアクセスしたい場合に使用されます 別のコンピュータからコンピュータ、 頻繁にあるXMPP、 Jabberのチャットまたはとして知られています、 これはプロトコルであり、 チャットサービスを使用するため。 そして、多くの、多くの、多くの他のものがあります。 あなたが使用しているので、すべての時間 サービス、サービス 情報を期待しています 要求をreceived--します でreceived--します 非常に特定のフォーマット そして、することが要求されます バック情報を返します 非常に特定のフォーマットでも同様。 それでは、私たちのイラストに戻ってみましょう 私たちのインターネットに話をしたいです。 だから我々は満足している、と私たちは欲しいです 右、cats.comに行くには? だから我々はちょうどcats.comに話している場合は、 私たちは、ちょっと何かのように言うかもしれません、 私はあなたのホームページを見ることができますか? そしてcats.comはおそらくだろう 、ええ、必ず対応しています。 どうぞ。 だから、人間の一種です 尋ねる-と回答。 それは、HTTPには何が見えますか? まあ、それは実際に種類の変換します かなりきれいにこのような何かに。 我々は、GET / HTTP / 1.1を言うかもしれません ホストcats.comから。 だから基本的に私はここでやっていることです Webページwww.cats.com/を求めます。 我々は通常のスラッシュを省略 今日では、それは希望だけ cats.comのホームページを意味します。 ああ、ところで、私は行きますよ HTTPのバージョンを使用します あなたと通信するために1.1。 それは一種の類似のです ところで、のような、と言って、 私が話すことするつもりです フランス語で、または方法によって、 私は英語で話すことするつもりです。 それは、プロトコルのフォーマットだけです。 それがある、また、1.0です 一般的にはもう使用されません。 だから私は、HTTP 1.1を話して、そして 私はwww.cats.com/をしたいと思います。 私のためにそれを取得してください。 そして、他の情報があります、 ドット、ドット、そこにドット、too-- 詳細については、あります あなたがそのように誰cats.com どこの送信先を知っているだろう。 しかし、これらは2つです 重要な部分のソート 非常に初めに HTTPのrequest-- ちょうどあなたが起動したときのような あなたが言う手紙、親愛なる、空白。 これは、その精神において非常に類似しています。 そしてcats.comをしようとしている場合 ああ、確かに、ここであなたが行く、と言います。 彼らは次のように反応する可能性があります this--私も応答しています。 私はまた、HTTP 1.1を話します。 あなたの要求は、200 OKを承認されています。 あなたは何をしようとしています 受信後、HTMLとあります ドット、ドットは、いくつかの追加情報が点在しています。 との一番下にあります 要求は、実際にはHTMLです、 マークアップ言語 cats.comのホームページの内容。 だから、HTTP / 1.1--私はあなたを認めます リクエストは、HTTP 1.1を経由して受け入れられました。 あなたの要求が承認されました。 私は、あなたが望むものを200 [OK]をあなたに与えることができます。 あなたがHTMLを受信しようとしています。 そして、ここです あなたが要求されたHTML。 しかし、時には私たちの要求はしないでください 常に非常に計画通りに進みます。 私はあなたのcats.htmlページを見ることができますか? まあ、彼らが何を言っている場合、我々 cats.htmlページを持っていません、 どの種類の非現実的なようです 彼らはcats.comだから。 あなたは彼らがcats.htmlを持っていると思うだろう。 しかし、[OK]をクリックします。 だから、これは一種のです 従来の人間の相互作用 我々は今cats.comを持っていました。 それはどのように翻訳するのでしょうか? これは、あなたにはおなじみのものかもしれません。 私たちの要求は、まったく同じに見えました 代わりにスラッシュを得る除きます 我々は今cats.htmlを取得しています。 だから今は基本的に何この全体 要求は私に与えてくださいされていると言っています www.cats.com/cats.html。 ホストと中間だから その一番上の行の一部 正確にそこに示しています どのページ私はのために求めています。 しかし、この場合のcats.comは行っていません 積極的に対応できるようにします。 彼らは、私たちが話しているか分かりません。 そして、これはあなたが持つかもしれないものです 見before-- HTTP 1.1 404が見つかりません。 私は何を見つけることができませんでした あなたが求めていました。 ところで、私はあなたを与えるつもりです バック一部のHTML、そして通常、そのHTML いくつかの404ページの内容です。 との場合 cats.com、それはおそらくです バスケット内のいくつかのかわいい猫 悲しい404顔それらの隣に、 あなたがあることを行っているので 悲しい、ページを取得していない場合 あなたが探していたこと。 それは何の基礎のようなものです プロトコル、HTTPプロトコル要求 のように見える。 彼らはどのように我々には本当に似ています 同様の相互作用になるだろう ちょうど人間の規則で 何かを求めて それを取り戻すかの書き込み 文字と応答を期待 特定の形式の文字。 それはかなり何 HTTPはちょうどcanonicalizingさ アクセスしたいすべてのデバイスの ウェブページ、ハイパーテキスト転送。 だから形式の行、この 方法要求の対象HTTPバージョン、 HTTPリクエストラインと呼ばれています。 これは、通常、最初のものです HTTPリクエストの一部として送信 または、あなたは、HTTPのために求めている場合。 私が言ったように、それは言って、並べ替えのようなものです トップあなたの手紙で空白、親愛なります。 彼らはあなたがしていることを知っています 彼らに手紙を書きます。 だから、これは非常に似ています 私が知っている、と言っへ 彼らは、HTTPリクエストを作っていること これは特定のフォーマットであります 彼らはのために求めています。 HTTPバージョンは、おそらくです 常にHTTP / 1月1日になるだろう。 1.0にも存在しますが、ではありません 本当にもう使用。 CS50の目的のために、 GETは常に、おそらくあります 何をすることになるだろう あなたが実際に使用しているとき 直接HTTP要求を行います。 しかし、POSTは、私たちがしている別のオプションです 今の話をするつもりはありません。 そしてリクエスト標的であります ホストのサーバー上のどのページ あなたが取得したいと思います。 私が言ったように、そのホスト名 通常、別の行であります 全体的な要求の2行目。 だから、一緒にホストを取ら 名前と要求対象 特定の指定 リソースが求められています。 私は、第二の前に私たちの404の例では www.cats.com再度求めていました、 cats.comは、ホストされます。 そして、私の要求行で、 私は/cats.html言いました。 それは私の要求の対象でした。 だから、全体的な私が求めていました 内容や位置リソース www.cats.com/cats.htmlで。 そしてかどうかに基づいて、 リソースが存在します サーバが提供できるかどうか クライアントのリソースに基づき 要求、あなたが得るかもしれません バックさまざまなステータスコード。 あなたが見てきたこれらのステータスコードの一部 彼らは応答の一部だから。 そのうちのいくつかは、200 OK、されています おそらくかなり沈黙。 あなたは、おそらく見たことがありません ページには、200 OKを応答します。 あなただけのページが表示されます。 これは、404エラーのようではないです、 これは通常はかなり明確です。 通常はそれが404を言うことがわかります。 それでは、どのようないくつかの話をしましょう これらのステータスコードの可能性があります。 ここでも、ときにサーバー 私たちに応答し、彼らがしています HTTPバージョンのステータスを応答するだろう。 通常、HTTP / 1.1。 なるだろう、これらのステータスコードは何ですか? まあ、我々は成功を得る可能性があります。 成功カテゴリのですから、 テキスト[OK]をクリックしてコード200を得る可能性があります。 これは何を意味するのでしょうか? まあ、すべてが良いです。 あなたは、有効な要求をしました。 ここで有効な応答です。 私がお届けすることができました 正確にあなたが何を望みますか。 時には、他のものを得るかもしれません あなたはすぐに気づかれないこと しかし、多少の失敗です。 これらは、リダイレクトと呼ばれています。 ここでは2つの一般的なものがあります。 301移動Permanently-- これは基本的に意味 ページが新しい場所になりましたです。 それは永遠にそこに住むます。 そして、ほとんどのブラウザでは、意志 自動的にリダイレクトします。 だから、本当に参照してくださいことは決してないだろう いずれかの301、あなたがない限り 本当に外の日付を使用して、 ブラウザ、おそらく、 301応答は、の一部であるため、 ドット、ドット、301応答のドット。 新しいページがどこにあるかそれはまた、あなたに伝えます。 だから、ほとんどのブラウザはなります ちょうどそこにリダイレクトし、 あなたがそこに行きたいと仮定。 時にはあなたも302 FOUNDを得るでしょう。 そして、この1実際にあなた まだ時折表示される場合があります。 時々、ページが一時的に移動します。 だから、に組み込まれることはないだろう ブラウザを伝えるリクエスト 恒久的に任意の時間を変更するには それはあなたの要求を見て 何か他のものに変更することを可能にします。 だから、302を参照してください可能性があります 基本的に、発見 このページはどこか別の場所に住ん言います。 しかし、それはことはないだろう 永遠にそこに住んでいます。 これは、最終的には、おそらく行きます バックあなたはそれだと思う場所に。 次に、あなたが物事を取得します クライアントのエラー等です。 したがって、これらは、あなたがきたものです おそらく今、見て。 あなたはおそらく見ていません 200Sまたは300S、 しかし、あなたはおそらくしています 400Sに精通しています。 そして、それは我々が話しましょう​​何 第二には約、500Sにも。 あなたは401が無許可表示される場合があります。 通常、これは、あなたがしていることを意味します ページにアクセスしようと、 しかし、あなたはログインしていません。 だから、試してみて、いくつかに行きます Facebookのプロファイルか何か または、あなたがしようとアクセス あなたが仕事にいますsome--。 あなたが何かにアクセスしようとしています あなたの仕事のインターネット上で、 しかし、あなたはログインしていません。 あなたは、ページを見ることができません。 あなたは401が許可されていないかもしれません、 これは、我々は、おそらく意味 この要求を満たすことができるようになり、 しかし、最初にあなたがこれを行うにはログインする必要があります。 逆に、あなたは403を得るかもしれません それは本当にしないで、禁断 あなたはログインしたりしていない場合は問題。 この要求は許可されていません。 リソースは、サーバー上に存在します。 しかし、あなたはそれにアクセスすることはできません。 これは通常、その内部ファイルであります 様々な理由のためにサーバー上に住んでいます しかしことを意図するものではありません 外の世界からアクセスし、 ので、これらは禁止されています。 彼らはそこに住んでいます。 私はそれを見つけることができないとは言いませんよ。 しかし、私はあなたにそれを与えることができないと言っています。 そして、それは問題ではない場合 あなたはログインしたりしていません。 そしてその後、もちろん、 非常に一般的な404が見つかりません。 ファイルがサーバー上に存在しません。 私は満足したいと思います あなたの要求が、私がすることはできません。 また、時々サーバーを参照してください エラー、一般的に最も一般的な 、これは500内部サーバーエラーであること 実際にあなたは何も教えてくれありません まったく間違っているかについて。 しかし、それはあなたが作る実際にはありません リクエストの誤り。 それは実際にサーバに障害が発生します 何とかリクエストに応じて提供します。 だから500は、一般的な応答です。 また、何かが表示されます サービス利用不可のように、 これは私がコード503であると考えています。 ゲートウェイTimeout--場合 あなたは今までただのページを持っていました そこに負荷が座って、 ロードとロード それが起こっている場合、あなたは知っていることはありません ロードした後、最終的にはそれだけでsays-- ちょうど断念。 それは504ゲートウェイタイムアウトです。 サーバーがしたかったです リクエストを実行し、 しかし、何かが間違っていました サーバー上のside-- しないようにあなたのside--に それが問題にさせます。 今、私たちはここで話を終わらせることができ、 しかし、私は実際に今何をするつもりだもの 私は開くつもりさ 私のブラウザとは、あなたを見ます あなたが見ることができるかもしれない方法 これらのステータスコードの一部 あなたは、一般的にそれらを見ていない場合でも。 そして、我々は取ることによって、それをやろうとしています 一部の開発者ツールを見て。 すべての権利ので、ここで私は 今私のブラウザウィンドウに表示されます。 そして、私は少し勉強したいです これらのHTTPリクエストの詳細。 どのように私は私たちが知っている場合は、確かにknow--ん 何かがうまくいかないときに、ページは、goes-- 我々は、404を得ます。 私たちはすべてのことを見てきました。 我々はそれを説明する必要はありません。 しかし、いくつかの他のものは何ですか? そして、どのように私たちが見ることになります アクションでこれらの要求? 私はするつもりだだから最初のもの 行う開発者ツールを開いています。 だから、開発者ツールが組み込まれています 最も近代的なブラウザに 私たちは物事を見ることができます 私たちは、そうでなければないこと いくつかの余分な情報のソートをsee-- 当社のウェブの下に送信されています 要求。 私はここでGoogleのクロムを使用しています。 そして、開発者ツールを開きます Chromeで、あなただけの、F-12を打ちます それが開くようになるだろう それまで側。 私は要求を入力すると、私はズームインます 私たちはここで何が起こっているかを見ることができます。 しかし、私は自分のブラウザにするつもりです何 is--バー、私はhere--上でズームインします 私は、www.google.comへのリクエストを行います。 我々は、すべてのおそらく作りました 前にこの要求。 私はEnterキーを押しますするつもりです。 さて、ここに私の開発者でオーバー ツールは、私は、[ネットワーク]タブを選択しました。 そして、あなたはここで多くのことに気づきます。 these-- 200 OK、200 OK、いくつかを見てください これらのステータスコードの来ます。 私が見つけ302を取得していますなぜ私は知りません。 私はそのいずれかを参照してくださいとは思いませんでした。 しかし、基本的にはかなりそれに気付きます 私のGoogle request--の点で、はるかに 私は非常にシンプルに Googleのページの要求。 との過程で 私の要求を実現し、 Googleは明らかに多くのことを行っています 私の代わりに他の要求の。 しかし、私はGoogleのためのGET要求を行いました ページと私は200 OKSの多くを取得しています。 私はOKに200を見ていませんよ 私の画面が、私は取得しています 行われてきたリクエストをたくさん。 私はかなりだと一つ以上 必ず仕事に行くされています あなたの人々のためにis-- 本当に古い学校であり、 あなたは、Facebookがあったことを知っているかもしれません 必ずしもFacebook.comで。 その初期にはそれがありました wwww.thefacebook.comで。 彼らは明らかにアクセスを得ることができませんでした かなりしばらくの間Facebook.comへ。 そして私は何を期待してい ここでの情報を得ることです。 これが出てパンならば、我々は表示されます。 私はここで何を期待してい 情報を得ることです Facebookは永久に移動したこと thefacebook.comからFacebook.comへ。 だから私はどこかで期待してい 私のリクエストの上部付近 以上の私の開発ツールで 301通知を取得します Facebookが永久に移動したこと。 繰り返しますが、私は301を見ています 私のブラウザ画面上で。 そして、それは301のだから、 それは永久的な動きです。 ことで私のブラウザ、 それは、近代的なブラウザです おそらくリダイレ​​クトしようとしています とにかくFacebook.comに私。 しかし、それでは、何が起こるか見てみましょう。 そして今、私はするつもりです thefacebook.comに行きます。 そして、うん、そこには、右上部にあります。 それは離れて行きましたが、それがありました。 私はここで上にスクロールしてみましょう。 右ここで一番上に。 私はthefacebook.comに要求を行いました、 私は応答を取得しています このページは恒久的に移動したこと。 そして307ここにあります 内部リダイレクト。 そして、これは実際に持っているものです はるかに私を移動 おなじみのwww.facebook.com。 したがって、これらのレスポンスコードはまだやります 我々は彼らを見ていない場合でも、発生します。 私はするつもりはありません 、401、403、404を示しています あなたはおそらく見てきたので、 様々な点でのもの。 そして、500、私はちょうどになります 種類of--我々は幸運取得したいです 私たちが何を知らないので、500を得た場合 サーバーは、どこでも、現在ダウンしています。 しかし、これらのコードを実行します 存在し、方法があります 我々がない場合でも、それらにアクセスするには 当社のシステムにじかにそれらを参照してください。 私はダグロイドです。 これはCS50です。