>> 演講嘉賓：讓我們來談談另一個 protocol--超文本傳輸
協議或HTTP。
因此，我們已經談了IP 和TCP在以前的視頻。
而這些都是協議 這決定如何信息
從移動機器對機器和 因程序或服務
通過互聯網提供服務，通過 這個網絡路由器和機器。
>> 但是，這通常不是 整個畫面，對不對？
通常，當我們送 信息，節目
當數據是itself-- 接收，比方說，例如，
在通過TCP端口25或電子郵件 通過端口80的網頁請求，
有通常的規則體系存在 處理我剛剛收到。
和HTTP是一個例子 只是這樣的協議。
>> HTTP是唯一 應用層協議
我們要去談。
但它是另一組 規則支配如何
信息將被發送 並通過互聯網處理。
特別是，HTTP 指定究竟如何
其中一個必須做出的請求 一個網頁，究竟如何
一個服務器，一個機 承載網頁，
提供信息 回饋客戶。
>> 所以這個協議不 其實有什麼
做怎樣的信息 從A點移動
到B點。這真的 規則系統
for--它基本上規則 接合用於與網頁的工作，
類似的，當有人 波他們的手在你，
你應該揮手。
這是形式的 傳統的人類協議。
HTTP協議只是說，如果 要申請一個網絡
頁面上，確保您的格式如下 像this--有點像格式化
商業信函等。
和響應將同樣 來根據這個協議。
還有其他 應用層協議
我們不打算 視頻中談論。
但是，這其中就包括像 文件傳輸協議，
簡單郵件傳輸協議 發送電子郵件，數據發布
服務，遠程桌面 協議，RDP，這
如果你想遠程訪問使用 您的計算機從另一台計算機，
XMPP，這是經常 被稱為Jabber的，或聊天，
所以這是協議 使用聊天服務。
還有許多，許多，許多人。
>> 所以每次你使用時間 一種服務，該服務
期待信息 要received--的請求
要received--在 非常特定的格式
並且需要 返回的信息回
在一個非常特定的格式，以及。
>> 因此，讓我們回到我們的說明 我們想談談互聯網。
因此，我們很高興，我們希望 去cats.com，對不對？
因此，如果我們只是談論cats.com， 我們可以這樣說，嘿，
我可以看到你的主頁？
並可能會cats.com 回應，是的，當然。
在這裡你去。
所以這是一個人的排序 的詢問和回答。
>> 那是什麼樣子的HTTP？
那麼，它實際上那種翻譯 漂亮乾淨的東西是這樣的。
我們可以說GET / HTTP / 1.1 從主機cats.com。
所以基本上我在做什麼在這裡 請求網頁www.cats.com/。
我們通常忽略了斜杠 如今，但這只是
平均cats.com的主頁。
>> 哦，對了，我要去 要使用的HTTP版本
1.1與您溝通。
這就是那種類似於 他說，喜歡，順便說一下，
我要發表演講 在法國，或通過的方式，
我要在講英語。
這是該協議的只是格式。
這也是1.0，這是 不常用不再使用。
所以我說HTTP 1.1，和 我想www.cats.com/。
請拿到我。
>> 然後還有其他的信息， too--點，點，點在那裡，
這是關於信息 你是誰這麼cats.com
就知道在哪裡可以發送。
但這些是兩個 那種關鍵的部分
在開始 一個HTTP request--
當你開始一個活脫脫 信你說，親愛的，一片空白。
這是在精神非常類似。
>> 並且如果cats.com是要 說，哦，當然，在這裡你去。
他們可能會作出反應就像 this--我也在響應。
我也講HTTP 1.1。
您的申請被批准，200 OK。
什麼你即將 收到的HTML，然後
點，點，點了一些額外的信息。
而在的最底部 要求實際上是HTML，
標記語言，所述 cats.com主頁的內容。
>> 因此，HTTP / 1.1--我承認你 請求被通過HTTP 1.1接受。
您的請求已獲批准。
我可以給你你想要的東西，200確定。
你要接收HTML。
然後這裡的 您請求HTML。
>> 但有時我們的要求不 相當按計劃總是去。
我能看看你的cats.html頁？
好吧，如果他們說什麼，我們 沒有cats.html頁，
這似乎是一種不現實的 因為他們是cats.com。
你會認為他們將不得不cats.html。
但確定。
因此，這是排序 傳統的人際交往
我們現在已經與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是，我們的另一種選擇 不會談論現在。
然後請求目標 主機的服務器上的哪一頁
你想獲得。
正如我所說，該主機名 是一個獨立的行，一般
第二行的總體要求。
因此綜合考慮，主機 名稱和請求目標
指定一個特定的 資源受到追捧。
在我們的404的例子在一秒鐘前，我 再次要求www.cats.com，
cats.com是主機。
而在我的要求， 我說/cats.html。
這是我的要求的目標。
所以，總體來說，我是問了 內容或位於該資源
在www.cats.com/cats.html。
>> 然後根據是否 這個資源存在
和服務器是否能夠提供 根據客戶端的所述資源
的要求，你可能會得到 不同的狀態代碼回來。
你們當中有些人已經看到了這些狀態碼 因為他們是響應的一部分。
他們中的一些，200行，是 可能是相當沉默。
你可能從未見過 一個頁面響應200 OK。
你剛才得到的頁面。
它不象一個404錯誤， 這通常是很清楚的。
大家平時看到的，它說404。
>> 因此，讓我們來談談一些 這些狀態碼可能。
再次，服務器時 回應我們，他們是
要響應HTTP版本狀態。
通常是HTTP / 1.1。
這些是什麼狀態碼會是什麼？
好了，我們可能會取得成功。
所以在成功的品類，我們 可能會得到200碼的文字確定。
這是什麼意思？
好了，一切都很好。
你犯了一個有效的請求。
這裡有一個有效的響應。
我能救 正是你想要的。
>> 有時候，你可能會得到其他的東西 你不會馬上通知
但有些失敗。
他們是所謂的重定向。
有兩種最常見的在這裡。
301動了Permanently-- 這是什麼基本上意味著
是頁是現在在新的位置。
這將生活永遠存在。
和大多數瀏覽器將 自動重定向。
所以，你永遠不會真正看到 301，或者，除非你是
使用真正走出過期 瀏覽器，可能的話，
因為301響應的一部分 圓點，圓點，301響應點。
它還告訴你在哪裡新的頁面。
所以大多數的瀏覽器將 只是重新定位你在那裡，
假設你想去那裡。
>> 有時你也得302找到。
而這一次你真的 可能還會看到一些偶爾為之。
有時，頁面之間移動暫時的。
所以它不會被建成 請求告訴瀏覽器
永久改變任何時間 它認為該請​​求你
令將其更改為別的東西。
所以，你可能會看到302 研究發現，基本上
說這頁住在別處。
但它不會 住在這裡，直到永遠。
這最終將可能會去 回到你認為它是。
>> 然後你會得到的東西 像客戶端錯誤。
因此，這些都是那些你已經 可能看到，現在。
你可能沒見過 200到299或300秒，
但你可能 熟悉400S。
而這正是我們將討論 大約在一秒鐘，500秒為好。
>> 您可能會看到401未授權。
通常，這意味著你 試圖訪問一個頁面，
但你還沒有登錄。
所以，你試著去一些 配置文件什麼的在Facebook
或者你嘗試和訪問 some--你在工作。
你試圖訪問的東西 你的工作的互聯網上，
但你不能登錄。
你看不到的頁面。
你可能會得到一個401未經授權， 這意味著我們可能
將能滿足這個要求， 但首先你需要登錄這樣做。
>> 相反，你可能會得到403 紫禁城，它並沒有真正是
如果你登錄或沒有關係。
這個請求是不允許的。
資源存在於服務器上。
但是，你不能訪問它。
這通常是內部文件 活服務器出於各種原因在
但並不意在 從外界訪問，
所以他們是被禁止的。
他們生活在那裡。
我不是說我不能找到它。
但我說我不能給你。
它並不重要，如果無所謂 你或沒有登錄。
然後當然， 很常見的404未找​​到。
該文件不存在於服務器上。
我想，以滿足 你的要求，但我不能。
>> 也有時會看到服務器 錯誤，最常見的一般
是500內部服務器錯誤，這 實際上並沒有告訴你什麼
在所有關於什麼錯誤。
但它實際上不是你做 一個錯誤在你的要求。
它實際上是服務器故障 對請求提供某種方式。
所以500是一般的反應。
>> 您還可以看到一些東西 像服務不可用，
我相信這是代碼503。
和網關Timeout--如果 你曾經有一個網頁只是
坐在那裡裝， 載荷和載荷
你永遠不知道，如果它要 負載，然後最終它只是says--
只是放棄。
這是一個504網關超時。
服務器要 執行您的要求，
但出事了 在服務器side--
不是你side--到 導致該是一個問題。
現在，我們可以在這裡結束的故事， 但實際上，我現在要做的
是我要去開拓 我的瀏覽器，並告訴你
你怎麼可能能看到 一些狀態碼
即使你通常不會看到它們。
而我們要做的，通過採取 看看一些開發工具。
>> 好吧所以我在這裡 現在在我的瀏覽器窗口。
我想學一點點 更多有關這些HTTP請求。
我怎麼知道 - 當然，我們知道，如果一個 頁面goes--出問題的時候，
我們得到了404。
我們都看到了。
我們並不需要以說明。
但是，有一些其他的？
而我們怎麼能看到 在行動中，這些要求？
>> 我要去所以第一件事情 要做的就是打開開發人員工具。
因此，開發工具是建立 到最現代的瀏覽器
並讓我們看到的東西 我們不以其他方式
see--一些額外的信息排序 下面我們的網絡傳輸
請求。
我使用谷歌瀏覽器在這裡。
並開放開發工具 在瀏覽器，您只需點擊F-12，
而這將打開 它掛在側。
當我輸入的要求，我會放大 因此，我們可以看到是怎麼回事。
但我會做我的瀏覽器 酒吧is--我會放大在這裡 -
我會主動要求到www.google.com。
我們都可能發 這一要求之前。
我要敲回車。
>> 現在，在這裡我開發 工具，我選擇了網絡選項卡。
而且你發現很多東西在這裡。
看看these-- 200行，200行，一些 狀態代碼上來。
我不知道為什麼我得到302找到。
我不知道我看到那一個。
但基本上注意到，漂亮 多，我的谷歌request--方面
我做了一個非常簡單的 要求谷歌的網頁。
和在過程中 提供我的要求，
谷歌顯然已經做了很多 代表我的其他請求。
>> 但是我做了谷歌的GET請求 頁面，我得到了很多的200 OKS。
我沒有看到200 OK的 我的屏幕，但我發現
大量的請求已作出的。
還有一個，我敢 肯定是去工作
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。