我的第一堂 - 網路基礎概論


Posted by krebikshaw on 2020-06-14

前言

網路人人都在使用,但是網路背後運作的原理,會深入研究的人就很少了。
我們來用最簡單的方式了解,跟網路有關的專有名詞,背後是什麼意思。

本篇文章會提到關鍵字如下:

IP位置 & 域名
內網與外網
DNS
server
request
response
前端與後端

IP 位置 & 域名

網路世界的地址,讓你能夠順利找到你要的網頁。
地址 是獨一無二的,跟你家地址是一樣的概念,只要在信上寫下你家的地址,郵差只會找到你家,這個地址只會對應一個目的地。

IP 位置是由四個數字組成,範圍是 0 ~ 255

範例: 10.24.100.15

域名 是一個讓大家更好閱讀也更好記住的名稱

中正紀念堂 就是一個讓大家好記住的名稱,所以他就是 域名
台北市中正區中山南路21號 就是獨一無二的地址,也就是 IP 位置

換成網路的世界

google.com 是一個讓大家好記住的名稱,他就是 域名
172 . 217 . 27 . 142 就是他的 IP 位置

因為 域名 比較好記也比較好溝通,所以日常生活我們用的一般都是 域名

DNS

  • Domain Name System
    用來幫你把 域名 轉換成 IP 位置

(引用 Huli 老師的圖)

就好像你去 Google Map 查詢 中正紀念堂 他會告訴你完整 地址 是一樣的。

內網與外網

有些眼尖的人可能會發現,怎麼自己的 IP 位置 怎麼跟別人的一樣?

(引用 Huli 老師的圖)

左邊圈圈裡頭的都是 虛擬 IP,公司所使用的內網就是如此,所有員工的電腦會在同一個內網底下,那這些電腦對外連出去到外網的時候,外網看到的都會是同一個 IP。

內網 底下,每台電腦自己有不同的 虛擬 IP,但連到 外網 之後,外面所看到的都會是同樣的 IP。

有些公司的內部服務會 鎖 IP 導致你在自己家裡頭會連不上公司後台的管理系統。這個時候可以利用 VPN 來從外部連進內部的網路系統。

當我們在 google 搜尋的時候,實際上發生了什麼?

在開始了解發生什麼之前,有幾個名詞要先說明:

  • 瀏覽器 :讓我們瀏覽網頁的工具 ( IE,Chrome,FireFox,Safari 這些都是瀏覽器 )
  • request請求 ,告訴別人你希望得到什麼
  • response回應 ,別人根據你的請求所給你的回應
  • server司服器 ,網站架設的平台
  • 資料庫 :存放司服器資料的地方

接下來來看看下面這張流程圖:

從你輸入 google 搜尋 到你按下 Enter 中間發生了哪些事?

  1. 瀏覽器判斷 request 內容就是說要傳給 google.com
  2. 電腦作業系統就會收到這個發 request 的需求
  3. 就會先把目的地,也就是 google.com 取出來
  4. 然後發 request 給 DNS server 問 google.com 怎麼走?
  5. DNS 回說,去 172 . 217 . 27 . 142 就是了。
  6. 瀏覽器送 request 給 172 . 217 . 27 . 142。
  7. 位在 172 . 217 . 27 . 142 的 Server 接收到 request。
  8. Server 去搜尋資料庫,查詢你要的關鍵字。
  9. 資料庫找到了,把資料傳給 Server。
  10. Server 回傳 response 給瀏覽器。
  11. 瀏覽器解析回傳的 response 並顯示出來。
  • 搜尋的這個動作,request 的資料並不是只有「關鍵字」這麼簡單,裡面會有 要傳送的目的地,要發送的資料等等,而瀏覽器在發 request 之前會先做一個解析,確認自己知不知道這個 domain, 若是有需要詢問 DNS,才會進到 DNS 的解析流程。等到確定好目的地後再把訊息發給那個 IP 。

前端 & 後端

前端 (Front-end)
我們打開網頁,所有看的到的畫面(圖片, 按鈕, 文字, 功能),都算是前端的範疇。像是公司的 介紹網站 ,上面會提供了很多資訊可以閱讀。但是不提供 註冊帳號, 留言評論, 按讚分享 等功能,這個網站就是一個靜態網站。只需要由 html, css, JavaScript 就可以達成。

後端 (Back-end)
在背後處理我們看不見的事情,不論資料處理或數據計算,這些都是使用者看不到在 Server 上面處理的。

若是網站比較複雜,需要很多資料存取,例如:使用者需要註冊帳號,使用者可以按讚可以留言分享。這就需要一個後台來管理這些資料。所以後端在做的事情就是將資料處理好,再動態的去更新我們看到的頁面。後端的語言就有很多選擇,像是 PHP, Ruby, Python ...等等。

參考資料:

後記

網路世界,是一個既熟悉又陌生的領域。明明每天都在使用它,卻摸不透背後實際運作的原理。前腳踏進了這個世界,才發現這個世界多麼神奇。
期望大家都能夠快樂悠遊在這美麗的世界!


#前端 #網頁 #IP #網路基礎







Related Posts

[Day 0 0]好迷失的被抓來發文

[Day 0 0]好迷失的被抓來發文

軟體工程師面試資源最簡整理與技巧分享

軟體工程師面試資源最簡整理與技巧分享

 [day 05] getter & setter: 屬性描述器

[day 05] getter & setter: 屬性描述器



Comments