網路觀念

Client & Server

  • 客戶端 (client-side): 發出請求 (request)
  • 伺服器端 (server-side): 給予回應 (response)

兩端來循環的溝通流程稱為 request/response cycle

HTTP 傳輸協定

人與人使用語言溝通,機器之間交流也有格式、語法,稱為傳輸協定 (protocol)

  • 設備定位位址,使用網路傳輸協定 (Internet Protocol, IP)
  • 交流文件,使用超文本傳輸協定 (HyperText Transfer Protocol, HTTP)
  • 收發電子郵件,使用簡易郵件傳輸協定 (Simple Mail Transfer Protocol, SMTP)

使用 Browser 看 HTTP

打開 DevTools 查看 Network ,刷新網頁可以看到很多 server-side 回應資源。

HTTP 組成架構

HTTP Request HTTP Response
Request method Response Status
Request URL Response Headers
Request Headers Response Body
Message Body

HTTP Request

method URL headers message body
get www.example.com Host
post www.example.com/photos
patch www.example.com/photos?page=1
put
delete
  • GET:讀取資料
  • POST:新增資料
  • PATCH:修改資料
  • PUT:修改資料 (如果沒有該筆資料存在,則新增資料)
  • DELETE:刪除資料

HTTP Response

status response headers response body
200 content-type <html>...</html>
300
400
500
  • 2XX:成功回應
  • 3XX:重新轉向,例如 301 (永久轉向)、302 (暫時轉向)
  • 4XX:客户端錯誤回應,例如 404 Not Found (找不到資源)
  • 5XX:伺服器的問題,例如 500 Internal Server Error

MDN

網路資源、URL

網路資源(web resourse)為泛稱,圖檔、文件、程式、程式內部組件皆是。

URL為統一資源定位符(Uniform Resource Locator),俗稱網址(Web address),相當於現實世界的門牌號碼。

Protocol

為網址最前面的 http:// ,傳輸協一不一定只有 http 。
有可能是 httphttpssshftpfile

Host

主機(host),自架主機會有一串數字192.168.0.0之類的,稱之為 Internet Protocal,簡稱 IP

由於數字不便記憶,所以會租用網域名稱(domain name),成為www.example.com

Path

網域名稱後面所接的是檔案路徑,例如: /css/style.cs,每一台主機存放著許多檔案,該路徑也是唯一路徑。

Port

通訊埠 (port),存在網址中,但通常會隱藏。
http://www.example.com:80/css/style.css

Parameter

網址可以夾雜參數(Parameter),也稱查詢符(query),使用 ? 開頭,& 區隔,為搭配功能需求而設計。

現代網路架構

現代網路架構由路由(route)系統指派網址與資源,所以檔案目錄與URL路徑不一定相同。

路由

使用英文會比較容易理解,中文容易混淆。

  • Router : 路由器,為實體設備,幫每個資料封包(pack)選擇路徑
  • Routing : 「路由器幫資料封包們選擇路徑,引導資料按指定路徑移動」的過程。
  • Route : 路由器所選出的路徑本身

設計路由

使用 REST 架構,全名Representational State Transfer,「具象狀態傳輸」,其風格為 RESTRful

RESTRful 以 資料 為中心,使用 HTTP method verb and CRUD 資料操作。

HTTP Method:

GETPOSTPATCHPUTDELETE

CRUD:

CreateReadUpdateDelete

ihower
Ryan Tomayko

資料來源: Alpha camp