# 網際網路是如何運作的? ###### tags: `backend` ## 前言 當你在網路上點擊一個網站後(例如youtube!),到底發生了什麼事情? 從點下去連結到顯示出youtube.com的畫面這中間,有多少的事情正在發生,此處我們將探討何謂網際網路,以及它是如何運行的 ## 原理 你知道現在看到的網站,其實都是一串程式碼嗎?那你肯定會好奇這些畫面是如何跑出來的呢?沒錯,瀏覽器會幫我們「看懂」這些程式碼,並把它們轉換為我們看得懂的樣子。 那當你利用「瀏覽器」想去看youtube的時候,瀏覽器又為了你做了什麼事情呢? 首先我們要知道,youtube.com只是一串代號(又稱域名,Domain Name),它背後的地址其實是一串數字(就像8.8.8.8),這串數字我們叫IP(而目前我們是用IPv4)。 IP的用意就像你家的地址,如果有人想訪問你,就會到你家的地址去找你。同理,如果要看youtube,就會透過瀏覽器到youtube的IP去要資料。 那現在我們知道了瀏覽器會幫我們去找youtube住哪,並且要資料回來顯示給我們看。 ## 過程 1. 瀏覽器拿著使用者前往的域名去詢問DNS[^1],這個域名所對應的IP是在哪裡 2. 拿到IP後,瀏覽器會發送請求的封包[^2],透過路由器[^3]傳到指定的IP 3. 此IP的電腦收到了使用者瀏覽器發出的封包,在得知使用者的需求後,利用封包透過路由器回傳了指定的資料給使用者 4. 使用者的電腦收到了這個封包,然後根據封包的資訊[^4]得知是瀏覽器要的,於是給了瀏覽器 5. 瀏覽器拿到封包,拆解了其中的資料,然後再顯示到螢幕上,至此就完成了一次顯示網站的過程 ## 後續 那當然,網路不會只用於顯示網站,而是在許許多多的應用上都會使用,這邊只是利用瀏覽網頁的這個動作做一個最簡單的講解 [^1]: DNS(網域名稱系統),專門儲存網域與其對應的IP,並解決那些詢問網域的需求。 [^2]: 封包傳遞,是在網路中互相交換資料時所用的術語,例如A電腦傳送了一份資料(封包)到B電腦。封包中的資訊為了能讓發送方與接收方都能理解,所以訂定了共同的語言,稱之為協定,網頁用到的協定叫HTTP(超文本傳輸協定) [^3]: 路由器(Router),是實體的機器,在網路中幫忙遞送資料(其功能不僅於此),會有自己的IP。而我們的電腦、手機這類則叫終端機(terminal) [^4]: 電腦收到封包後,會根據封包上的表頭檔(Header)的埠(port),如同信件上的收件人,或像是大樓中的第幾戶人家,去判斷是要給哪一個應用程式。