演講嘉賓:讓我們來談談另一個 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。