網際網路如何運作:HTTP 和 HTML 我是Jasmine,我是XBOX One工程團隊的項目經理。 我們最大的特色之一是XBOX Live 這個線上服務。 XBOX Live 串連起全世界的玩家,而這是藉由網際網路才得以實現! 這不是一件容易的事,在幕後需要達成很多事情。 網際網路完全改變了人們互動和聯繫的方式。但它是如何運作的呢? 世界各地的電腦又是如何彼此溝通的呢?我們仔細看看「瀏覽網站」這個例子。 首先,你會執行瀏覽器,這是你用來造訪網站的應用程式。 然後,你輸入網站位址URL,它代表著網站的統ㄧ資源定位符,如:tumblr.com。 嗨,我是 David Karp,Tumblr的創辦人。 今天我們來聊聊,每天使用的網站瀏覽器,實際上是如何運作的。 在瀏覽器中輸入網址,並按下Enter之後,實際發生了什麼事情呢? 它真的是很瘋狂的一件事。 你的電腦開始與稱為「伺服器」的另一台電腦通信。兩台電腦通常間隔著數千英里。 在幾毫秒內,你的電腦會向伺服器查詢一個網站 伺服器則開始使用 HTTP 這個語言,回覆你的電腦。 HTTP 代表著 超文件傳輸協定 你可以把它看作是一台電腦用來向另一台電腦索取文件的語言。 它實際上是非常直覺的。 如果你去監聽你的電腦與伺服器之間的對話 這些對話,主要是由「GET」的請求指令組成。 就比如簡單的一句: GET “你所請求的文件名稱” 要前往 Tumblr 的登入頁面, 你只需要向 Tumblr 的伺服器傳送一個 GET 請求 說道:GET / login。這會告訴 Tumblr 的伺服器 你想要 Tumblr 登入頁面所有的 HTML 程式碼。 HTML 代表著「超文字標記語言」 你可以將它視為一種語言, 用來告訴瀏覽器,該如何顯示網頁的外觀。 想像一下,維基百科這個網站 它基本上就只是一個大文件 HTML 是用來讓 標題「變大」和「粗體」的語言, 並且讓字體顯示正確 讓某些文字能連結到其他頁面 讓某些文字變成「粗體」、或是變成「斜體」 讓圖片顯示在頁面的中間、對齊右邊,或是對齊左邊。 網頁中的文字,是直接包含在 HTML 中 圖片 或 影片 則是分開的檔案,他們具有自己的URL,需要額外的請求。 對於每一個,瀏覽器會個別發送 HTTP 請求, 並在回覆到達時顯示它們。 如果一個頁面有很多不同的圖片 每一個都會產生個別的 HTTP 請求 這就會讓頁面載入變慢 有時候當你瀏覽網頁時 你不僅僅是透過 GET 來取得網頁 有時,你還會送出資訊 像是填寫表單,或是輸入搜索查詢 瀏覽器會使用 HTTP POST 指令,以純文字形式,將資訊傳送給伺服器。 像是你要登入 Tumblr 首先,你會發送 POST 需求 也就是向 Tumblr的登入頁面,發送一個 POST 指令 裡面會有一些附帶的資訊 像是:你的電子郵件地址和密碼 那些會傳送到 Tumblr 伺服器來進行確認 OK! 你是 David 然後傳送一個頁面,回到你的瀏覽器上 表示著:「成功」,登入的人是「David」 除了頁面,還會附加一些看不見的 cookie 資料。 你的瀏覽器可以看到 並知道如何保存這些資料 這非常重要,因為這是網站能記住你是誰的唯一方式 對 Thumblr 來說 cookie 資料是一種身份識別卡片 用來辨識你是 David 瀏覽器會保留這個編號 當你更新 Tumblr 頁面,或下次再前往 Tumblr.com 時 你的瀏覽器就會自動附加這個編號 隨著請求發送給 Tumblr 伺服器 當 Tumblr 伺服器看到這些請求、編號時,就會知道 「OK! 這是來自於 David 的請求」 目前:1. 網際網路是完全開放的 2. 所有的連結都是共享的 3. 資訊都是以純文字的形式傳送 這讓駭客們能夠擷取 在網際網路上,你傳送的任何個人私密資訊 但是安全網站能夠阻止這一點, 藉著要求你的瀏覽器使用加密頻道來溝通 使用「安全資料傳輸層 SSL」以及後續的「傳送層安全協定 TLS」 你可以把 SSL 和 TLS 視為包在資訊外圍的安全保護層 避免資訊被偷看或竄改 當你看到網址欄中,在 https 旁邊顯示小鎖的圖案時, 表示 SSL 和 TLS 正在運作當中 安全超本文傳輸協定 (HTTPS) 能確保你的 HTTP 請求是安全且受到保護 當網站要求你的瀏覽器要建立安全連線時 網站會先提供一份數位憑證 這就像一張正式的身份認證 來證明這個網站是真的 數位憑證是經由「CA認證中心」來頒發。 CA 是具公信力的組織,它會驗證網站的真實性 再為這些網站頒發數位憑證 就像政府可以核發身份證或護照一樣 如果網站沒有正確核發的數位憑證,就想建立安全通訊,瀏覽器便會發出警告。 以上就是瀏覽網頁的基礎知識! 也是我們使用網際網路的日常 總結一下,HTTP 和 DNS 管理著網路上 HTML、多媒體文件或任何資訊的發送和接收 讓這成為可能的是,TCP/IP 和 路由器網絡 它們讓資訊得以拆解並用小封包形式來傳遞 這些封包則由二進位制所組成 --- 許多 1 和 0 的次序組合 並通過電線,光纖電纜、無線網路來傳送。 幸好,你只需要學會網際網路層的運作原理,你就可以依賴它 而不用記住所有的細節 我們可以相信,所有這些網際網路互連層會一起運作 成功地,大規模且可靠的傳遞資訊