>> 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です。