---
# System prepended metadata

title: 網際網路是如何運作的？
tags: [backend]

---

# 網際網路是如何運作的？
###### 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)，如同信件上的收件人，或像是大樓中的第幾戶人家，去判斷是要給哪一個應用程式。