網際網路如何運作: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 的次序組合
並通過電線,光纖電纜、無線網路來傳送。
幸好,你只需要學會網際網路層的運作原理,你就可以依賴它
而不用記住所有的細節
我們可以相信,所有這些網際網路互連層會一起運作
成功地,大規模且可靠的傳遞資訊