>>所有權利。
因此，讓我們深入到一些 技術詳情。
希望有一些什麼 一個壘球的問題。
HTTP，今天的目標是 根本是給我們一種精神
模型的類型 應用
而且我們的項目 要落實。
上週三，我們將過渡 在更深入的東西像MVC
特別是涉及 Laravel和ORM
與我們將 聊到數據庫。
但今天，讓我們設置 舞台為這些談話。
HTTP是什麼？
超文本傳輸協議？
確定這是什麼意思？
是啊。
[無聲備註]
確定。關閉。
它的另一個。
不是HT - 就是這樣的HTML。
HTTP是一個 做究竟是什麼？
>>是該服務的 好像回到文本傳輸
來回服務器之間？
>>是的沒錯。
它的服務器。
因此，實際上它的協議。
這是一套慣例 所使用的
傳遞信息並回 來回之間客戶端和服務器。
而這些信息通常 採用HTML的形式，
超文本標記語言的 是開放標籤和結束標籤。
所以，如果你確實有一些客戶端 這裡在左邊表示
和一些服務器為代表 這裡就對了。
箭頭來回
它們之間的代表 該語言的HTTP。
如果熟悉50 比如去年或一對夫婦
幾年前你可能會 記得，我們​​形容它
在這個意義上的協議 當我第一次遇見某人，
我可能會延長我的手， 說，你好，你可能會說 -
>>你好。
>>你好。而現在，那種 客戶端之間的交易
和服務器完成。
好的。
因此，HTTP只是一個 設置約定。
而這些公約之間 是發送特定的消息。
因此，例如， 讓我們打開瀏覽器。
而對於當然，你可以 當然使用最多的任何瀏覽器，
但Chrome往往是大概 最受追捧。
因為它有一個整體 一套內置工具
讓我們繼續前進， 檢查元素。
讓我去網絡標籤 並讓我去的東西
像http://www.cs164.net 然後按Enter鍵
後首次觸及紀錄 櫃面我們被重定向。
現在我們要去 看到一大堆
在這個表中的行。
什麼每個 這些行表示
當你訪問一個網頁？
是嗎？
[無聲備註]
沒錯。所有文件 我只是要求顯示
作為一個單獨的行 那個小桌子那裡，
但等待文件。
我只請求1 這樣的文件，右鍵，
大概的index.html 或index.php文件。
他們可能是鏈接，對不對？
當然還有圖像 還有裡面的標籤，
有鏈接標籤為 CSS中，有腳本標記
對JavaScript和 一大堆其他標籤
這實際上可能拉
在其他文件 排序的遞歸。
所以這就是我們所看到的。
如果我們現在滾動到 最高層的這些，
請注意，我們首先看到一個 這實際上是一種好奇。
它說我們的網站 感動是暫時的，
狀態代碼，以便 說話的是302。
還有另外一個類似的一個， 301已經被永久移動。
如果你暫時移動或 永久是什麼意思？
又該你的眼睛 在尋找以
回答但我們有移動？
當前和長度。
確定。因此，可以肯定 推斷我們到哪裡了。
而且顯然我結束了在 canvas.harvard.edu /某事
這是一個困難得多 記住。
但更多的技術上，我想 診斷重定向問題。
我想明白的地方我 從點A到B點
一個點的點，點， 點canvas.harvard.edu
在這個更神秘 頭的界面。
我該如何回答的問題 的形式，在哪裡我搬家？
位置。好的。
所以，如果我在這裡向下滾動 對響應頭，
注意到這些是 頭，讓我改變它。
這有點可愛 印刷版的Chrome瀏覽器。
讓我們單擊查看源文件。
這是原始文本 Apache Web服務器。
我知道， 在這條線在這裡看了一眼。
和Apache僅僅是自由 和開源軟件。
這可能是最流行 Web服務器軟件在那裡。
這是的結果 握手回來給我。
和排序的，如果我看一下 什麼是手的內側
或虛擬的信封 代表了數據包，
跨線裡面去
那就是這些 多行文本。
而且因為瀏覽器 自己說話的HTTP，
他們被預先編程 由谷歌和微軟
和其他公司 為尋找這一行。
而當它看到的位置： 這是什麼的URL做
結腸想必呢？
它去了。
我們可以看到這 在任何數量的方式。
事實上，非常好用 特別工具在Linux上
和Mac OS是，如果我打開 這裡一個終端窗口
而我呢捲曲和我做，我和 然後粘貼網址那裡。
這是一個好習慣使用引號
因為如果你曾經 有問號
或其他時髦的人物， 你實際上可以排序
混淆的命令行。
但如果你引用網址那裡， 現在我們清楚地看到所有
這回來的頭文件。
在這種情況下，實際上 我做了錯誤的決定。
我做了畫布的URL。
讓我們做http://www.cs164.net。
輸入。恰好有 這些頭文件。
如果我想看 接下來什麼回來，
我可以手動執行此操作。
所以捲曲是正中下懷快 和這裡臟的診斷工具，
捲曲我現在又來了網址 而這些都是在頭文件
現在回來從 canvas.harvard.edu。
哪些額外信息 是他們送我們嗎？
這是一個有點切斷。
讓我提出這個過來。
因此，這些線路之一 很有趣。
所以內容的長度，這是 有多少字節在裡面
虛擬信封 該回來了。
內容類型是HTML，它 可能是不同的東西
如果它是一個PNG或 GIF或JPEG一個。
事實上，通常來說， 什麼叫做這個字符串？
有這些獨特的 在世界上的字符串
它唯一地描述 不同的數據類型。
這就是所謂的 MIME類型，M-I-M-E型。
因此，當今世界標準化
這一點。PNG，我認為 是“圖像/ PNG”。
世界已經標準化 在HTML文件是text / html類型。
世界已經標準化了 一個MP4，電影文件是video/mp4。
因此，這些都是獨特的記號 該瀏覽器通常使用
以確定是否播放 它作為一個電影，以顯示它
作為一個圖像，以使 它以HTML或類似物。
什麼服務器呢 - Instructure 該公司背後畫布
顯然使用？
所以Apache的事情，因此他們使用 相同的工具，我們可以看到
經由這條線在這裡。
順便說一句，他們實際上已經 做了一些很聰明
不是所有的網站做。
很多時候，網站的吐了出來，
不僅如此，他們 運行Apache也
他們正在運行 Apache版本2.1.3。
但這些傢伙已經聰明 和禁用版本號。
為什麼這麼聰明？
是啊。
>>也許是因為某些 版本可能會被發現
並特別 漏洞
[聽不清]明顯。
>>沒錯。
這是一個潛在的 安全威脅。
如果你基本上 廣播世界，嘿嘿，
我們正在運行此版本。
嘿，我們正在運行此版本。
這並不是說很難與谷歌 或者只是捲曲甚至捅
各地隨機IP地址
並找人跑越野車 軟件，然後攻擊他們
用任何記錄 意味著有。
現在，為什麼它仍然 說的Apache？
可以說，這是有點 沒來由的信息。
好吧，阿帕奇可以很容易地 關閉的版本號
但不是他們的那種背後 幕後品牌以這種方式。
這是谷歌如何和其他 公司知道什麼是Web服務器
人都跑，因為他們 只是告訴全世界
每次訪問他們的時間。
這樣的cookie會回來過。
但是，你可能還記得，餅乾 是那種大的唯一號碼
這是典型的像 在用戶一隻手的郵票。
它的一個小文件或片 種植在瀏覽器數據
記住用戶是誰。
狀態200還是不錯的。
的X帆布 - 梅塔，所以 什麼是這一切的？
好了，長話短說，在 世界也讓世界
拿出任意，HTTP 頭，如果你這些前綴
其中X，這只是 意味著他們的習俗。
這是一個很好的方式，甚至 用於診斷目的的
如果您正在開發 一個基於Web的應用程序
並且希望能夠
看到幕後你 知道什麼是後端服務器吐
出此回复還是什麼 版本號正在運行
在此服務器上。
或者什麼是它的內部 IP地址，
任何事情，你可能會 希望某些內部一瞥
在東西是 怎麼回事，你可以吐
出自己的隨心所欲 HTTP標頭以這種方式。
但故事開始 開放課程網站。
我們看到所有這些 行中的網絡選項卡。
第一種是最 重定向的公司的權益
到下一個，然後我們得到 回到這個回應一下。
那麼，哪裡是canvas.harvard.edu？
讓我們推一點點 進一步和排序
遵循這些麵包屑。
Canvas.harvard.edu是 由哈佛大學顯然擁有。
他們創造了這個子域 所謂canvas.harvard.edu。
我將如何揣摩出
在世界canvas.harvard.edu 生活？
或者，也許更具體 什麼是IP地址？
我們如何能明白這一點？
是嗎？
[無聲備註]
當然可以。
所以，這實際上是回答 一對夫婦有問題。
第一個這樣簡單的工具，將 是一種叫做NSlookup的
雖然它被稱為其他的東西。
域名服務器查詢和 我可以輸入東西
像canvas.harvard.edu。
輸入。這是要給 我回來顯然一大堆
的答案。
但是，讓我們看看，如果不能 理解這一點。
因此很明顯，
canvas.harvard.edu 是一個規範名稱
這個殘暴 尋找的東西，
哈佛vanity.instructure.com。
那麼，什麼是怎麼回事？
而與此同時， 如果我們繼續讀，
哈佛vanity.instructure.com 有一個規範名稱
的東西更神秘，
哈佛-170的東西 美東 - 1.elb.amazon.aws。
此外，該解決的事情
以明顯3 不同的IP地址。
那麼，在世界 沒有所有這些意味著什麼？
是嗎？
[無聲備註]
確定。好。讓我調整 一件事，你說，
它不是一個真正的 內容分發網絡。
“因為這是典型的 意味著它的靜態內容
並且因為大部分的 網站動態驅動，
我不會形容 這是一個CDN
但它是亞馬遜託管的服務器。
亞馬遜提供一種稱為服務 亞馬遜彈性計算雲，
EC2的簡稱。
而這些都只是網絡 服務器通常運行Apache
或其他軟件 你基本上可以租
由亞馬遜支付幾美分 或幾元每小時
實際上你運行你的 在自己的服務器代碼。
和手段，使他們 做到這一點是他們給一個神秘的
像這樣找域名 這又導致一個
或多個IP地址 像這三個在這裡。
而反過來，你 可以創建別名
這是很多更 人類友好
對，否則完全 不值得紀念亞馬遜的地址。
並且在這種情況下 公司Instructure決定
到稍微創建 更令人難忘的地址，
哈佛vanity.instructure.com
但是這將是一個 對我們殘暴的事情
參觀的課程網站。
所以，哈佛又創建 另一個別名，更重要的是
簡單canvas.harvard.edu。
而所有這些技術都 利用一種叫做DNS，
域名系統。
並且，只要該系統 管理員可以訪問
哈佛的或者Instructure的 DNS服務器，
您可以創建這些別名。
如果你們這些傢伙， 為您的項目，
決定買一個域 命名為5美元，
10美元或什麼的。
甚至付虛擬主機
或只使用一個可自由查看 虛擬主機，你想它
到實際生活不 在一些random.com
但在自己的域名 名，你買5
或10美元這些都是 各種配置的詳細信息
我們將探討走向 本學期結束。
如果當談到時間 出貨公開的東西
所以可以住在一個 更有趣的網址。
讓我停頓了一會兒 因為你傢伙排序
不必要地 聚成一團在那裡。
你要笨拙 只是那種進來坐
在後面或中間？
我不應該畫 注意你？
進來吧。
這可能是更 不舒服那裡。
[暫停]
好的。
確定。歡迎。
好的。
那麼，這是否現在離開我們嗎？
所以，在某種程度上，我們是和其他 我們會跨過這道坎，如果
並在時機成熟時在條款
的DNS你怎麼居然會 配置了這一切。
一些如何或其他， 這個HTTP請求，
這個初始握手 到達服務器在一個
這些IP地址。
在該服務器上的東西 所謂的Web服務器。
沒有驚喜。
但什麼是真正的技術 是一個web服務器？
那種你把短語 理所當然的，但究竟是什麼？
什麼是Web服務器？
是嗎？
[無聲備註]
確定。因此，它只是一台電腦 帶記憶和輸入。
你知道它可能已經看過
這樣的畫面，甚至更早 雖然這個人是有點
復古與更多的 台式機或塔​​式電腦。
是啊，它只是一台電腦。
但在技術上，一個web服務器 是不是每說一台電腦。
那種我們作為人類有 長混為一談Web服務器
和電子郵件服務器 作為物理設備。
但Web服務器真的 是一款軟件。
這是一個軟件 在物理計算機上運行。
因此，你可以有一個 電子郵件服務器和Web服務器
和圖表服務器和任何 其他服務器數量
或者更恰當 在上面運行的服務
特定的計算機和 所有這些服務都可以活
在相同的IP地址 因此。
那麼，如何 - 如果你有你 確實有多個服務
或者在運行中的服務器 同一台電腦，如何在零
和那些來了的 在他們通過互聯網，
請問電腦是否知道 響應作為電子郵件服務器
有一個網頁，一個聊天？
是啊。
[無聲備註]
好。沒錯。
因此，一個Web服務器監聽 什麼叫做端口。
如果你已經採取CS143 網絡，你可能知道
這些端口與 像TCP協議
你可能是在 至少聽說過或UDP。
而這些端口或端口號 只是唯一標識符
標識的服務。
所以，80是網絡，25是電子郵件， 23是遠程登錄，22是SSH
並有數十或數百個
其他的人雖然有 只是幾個非常受歡迎的。
而這是一個單向 電腦用一個IP地址
排序复之間 不同類型的請求
並作出相應的反應。
那麼，這實際上意味著什麼？
所以我們並不需要一個網絡瀏覽器。
我們不需要捲曲 居然跟一個Web服務器。
我們只需要了解什麼 協議以及它是如何工作的
和我提到 這個剛才。
Telnet是排序的 老同學的程序。
在我們那個時代，我們使用 用它來檢查電子郵件
但它是完全不安全。
它只是一個工具，通過它 您可以發送文本命令
到另一台計算機。
而早在一天，
這些文本命令 通常包括您的用戶名
並與您的密碼 沒有排序的加密。
如果你熟悉SSH，
SSH是相當多的Telnet 但加密。
所以這是一個位的 過於簡單化。
不過，我可以假裝作為 人類有一個終端窗口
而這個老學校計劃 TELNET是一個Web瀏覽器。
我可以輸入東西 telnet這樣www.cs164.net
不幸的是，如果我 只需按Enter鍵，它的嘗試
但似乎沒有任何 要發生的事情。
那是因為在默認情況下， 世界決定年前
該遠程登錄的默認端口是23
我簡要地提到 到剛才。
但我不希望每說的Telnet。
我想使用Telnet這類 文本程序假裝的
要在Chrome Web瀏覽器 與IE和其他瀏覽器
在默認情況下已經很難 由谷歌和微軟編碼
說話不是23，但 以80或443可能
基於SSL的網站。
現在，請注意我嘗試和我 連接到Web服務器。
我現在要走了，繼續前進， 這樣說你好。
顯然這有 剛搬到永久。
我送了一些偽造的命令
和它送我回去 在這裡這個地址。
所以，讓我們真正做到 這有點不同。
讓我們真正看到 說，GET/HTTP/1.1。
所以，我在做什麼？
這是命令。
這是那種我的 握手，可以這麼說。
什麼是正向 削減可能說明什麼？
主目錄。
所以主目錄 在這裡它只是意味著 -
好，讓我們把它叫做 根的網站。
無論默認的文件 是，也許是index.html的，
也許是的index.php
和HTTP/1.1本質 最新版本的HTTP。
所以我假裝是一個 瀏覽器那是相當的電流
這樣它響應 它我，我希望。
我繼續前進， 按Enter鍵兩次
因為事情的工作方式是 一旦你看到一個空行，
沒有一個web服務器，然後作出回應。
但不幸的是 這是一個錯誤的請求。
瀏覽器發送一個請求
該服務器 無法理解。
現在，這個人是很多 較難診斷。
但事實證明， cs164.net是使用Apache。
並沒有多少，我們可以計算出。
但它也使用的東西 所謂虛擬主機
在其中你可能很熟悉。
也許隱約從 您的CS50天
或者，如果你已經寫 商業網站之前，
什麼是虛擬主機或虛擬主機？
是啊。
[無聲備註]
確定。沒錯。
因此，有多層 复這裡可以這麼說。
當你得到一個請求 在一些服務器
在一個特定的IP地址，則 最低限度需要的端口號
讓服務器知道這是 電子郵件，它是一個Web請求，
聊天消息或什麼不是。
但如果一旦你的身影 出來，OK，它的80端口。
這顯然要求 對於一個網頁。
但不會是很好
如果一台服務器可以 真正支持多
網站，food.com和 bar.com和bass.com
這樣就不需要一個物理 服務器或一個單件
軟件為每 該死的網站在世界上。
因此，當今世界虛擬發明 主機，讓您
把多個域名 上相同的IP地址。
但美中不足的是連接 我只是用Telnet做，
指定80端口 www.cs164.net我沒有提到
域名 我很感興趣
在以後的命令行。
不幸的是，這 是有點非顯而易見的。
當我按下Enter鍵，
本質上的Telnet 擅自將是
www.cs164.net的 我到一個IP地址
然後就派我的生 GET請求到服務器。
使概念，它是 www.cs164.net完全喪失，
右。
Telnet是不是瀏覽器 為什麼會打擾送
其他信息 到服務器？
這並不是說聰明。
所以，我的瀏覽有 提醒服務器
不僅我想 得到的主頁，
我也想指定 主機cs164.net的。
和HTTP標頭可以這麼 說話也正是如此，主持人：。
現在，當我按下回車鍵，我 取回相同的重定向
我在Chrome和看見我 在捲曲看到，但我現在不敢說，
我們正在做這只是 關於為低電平
因為在技術上是可能的
通過使用這些多 神秘的命令。
現在，這是為什麼有用嗎？
所以，這是不正常的 的方式來訪問一個網站
但幾乎​​所有的時間，你 要診斷一些問題
與基於Web的應用程序 這涉及到一個服務器或片
的軟件或新 創建虛擬主機
或新買的域名。
這正是工具 你知道Tim和Rob和我
和其他人會用 只是為了揣摩
發生了什麼事情錯了，對不對？
案例中你隨時點 一個域名，你必須以某種方式
到IP相關聯 解決它。
而你通過這樣做通常 在GoDaddy的基於Web的界面
或namecheap.com或任何 你買的域名。
因此，不同的網站 有不同的工具
但它本質上是在一個 Excel表格的列
對於主機名和列
對於IP地址 類似的東西。
但是有一個問題 因為任何時候你問
到一個IP地址相關聯 使用主機名，系統會要求您
對於它的TTL矗立 為 - 你拿了143。
我聽到它在這裡。
生存時間。
一個TTL指多少秒 應此項目被記住
並通過記憶， 我的意思是緩存。
所以，長話短說， 也內的DNS的世界，
還有這整個 概念緩存。
這是一個話題，我們將 在探索的過程中，以及
在軟件層面，據此 緩存通常是一個非常
好東西。
而我們所說的意思 高速緩存一個Web頁面，例如
或一個緩存DNS 記錄，IP地址？
這是什麼意思緩存？
是啊。
[無聲備註]
是的，沒錯只是保持 圍繞一個副本，以便
如果它不改變或 坦率地說，即使不發生變化，
讓沒有注意到，至少 幾秒甚至幾
分鐘或更差 對於一兩個小時。
而在一個網站上，你可能會 已經看到了這之前，
有時，如果你是 利用網站，
沒有那麼多的最大 網站。
你往往會得到這個 細節的權利，如Facebook
和Gmail等。
但是，如果你使用的是其他 網站是使用大量的
的技術 我們將在課堂上使用，
它往往是一個設計決策 以決定是否
緩存的東西，如果是的話， 多久緩存的東西。
如果你曾經 一直到網站
其中比如你點擊保存 然後重新載入網頁
然後不管你 發布不存在。
但你也許你 重新加載，它會出現。
而事實上，我實際上 見過的症狀，甚至
使用Facebook曾經在一段時間
在那裡，如果你重裝 您的新聞飼料，
有時東西是存在的， 有時它會消失
而事情不 似乎真的是一致的。
而這往往結果 只是緩存的問題。
上一個請求，你 擊中一台服務器。
在另一個請求，你 擊中另一台服務器
和他們的高速緩存，其副本
網頁可能不 完全同步
通過在幾秒鐘或幾分鐘
所以你看到不同的 世界的狀態。
同樣的事情發生在DNS。
如果您決定 你自己food.com
如果你已經 在GoDaddy的託管它，
一個相當流行的網絡 其中包括託管公司
並決定，不，我不 真的很喜歡他們的政治，
我真的不喜歡他們 價格，他們的服務。
我想換到另一個網頁 託管公司都在一起。
你做什麼工作？
那麼，你會簡單地改變 food.com指向的IP地址
在別人的服務器誰 你要開始的錢。
但由於整個DNS 服務器系統採用高速緩存，
什麼可能這個意思 為您的用戶
如果你突然動 從這裡你的網站
到這裡結束了，不同的 IP地址。
好的。
對於一些非零數字 分鐘或秒，
您的用戶可能最終會 這裡的實例或在這裡
因為他們的操作系統， 他們的瀏覽器，他們的ISP，
他們家的路由器可能有 緩存的舊的IP地址
在這一點上，它的 真的很難圖
出到底發生了什麼錯誤。
那麼，你如何開始追 甚至下降的問題這樣呢？
通過剛才以下 這些麵包屑
和理解 最終什麼是HTTP
什麼意思送 要求什麼做工具
像NSlookup的實際 為你做。
所以你怎麼能執行一些 這些低級別的命令
而剛剛弄清楚什麼 實際上是怎麼了。
所以，你知道給誰打電話，誰 發送了一封電子郵件或什麼
改變你自己的服務器上。
而作為一個在旁邊， 我猜最
你在這裡使用了CS50 電器，如果你確實需要CS50。
即使你沒有很多
你可能已經使用過 阿帕奇是否在自己的Mac電腦
或PC或Linux系統。
正如順便說一句，如果我這樣做 在這裡打開一個終端窗口
在最新的CS50電器 和我成為root用的Sudu蘇
然後我進入 這個目錄
在這裡等/的httpd / conf.d裡/。
這是一種常見的 用於放置Web服務器 -
適用於Apache Web服務器來存儲 它們的配置文件。
conf.d裡的意思只是配置 有一大堆目錄
文件的，如果我將打開 與六比如，
家電50，你會真正 看到主機如何虛擬
在CS50電器一直 工作的所有的那些時間。
如果已經有一段回憶
你可以把最 內部的任何網站
您的虛擬主機的目錄 在電器。
如何實際工作？
嗯注意到，這是一個有點 神秘，你可以進行排序
通過神交你的方式 這個使用的文檔。
但本質上是 可能是最有用的行
仰視 - 看是這樣的。
在這裡這條線基本上 告訴Web服務器來查找
在約翰·哈佛的 虛擬主機目錄
對於下殼體版本 無論服務器名稱
或域名是 實際訪問。
我們不一定會進入 這種程度的修修補補的。
但是，使用Apache的時候， 你是那些
誰最終擁有 控制這些細節。
確定。所以，從今以後，我們現在可以 採取的HTTP是理所當然的，對不對？
好的。
那麼我們為什麼不這樣做 這樣，特別是當一些
你感到有些俘虜 觀眾，我們為什麼不繼續
並採取兩分鐘的休息時間，
我們回來的時候，我們將深入 有點為MVC，我們將
上記上 - 一個問題，即 屆時我們會解決週三
與被叫Laravel工具。
那麼，讓我們來 幾分鐘的時間。