HTTP Networking(8) Url paths

Url paths

http://testdomain.com/root/next

上面這段網址中,在 domain 後的 ‘/root/next’ 就是 path。

在早期的網路開發中,URL’s path 通常會對應伺服器的資料夾路徑。例如,如果有一個網站 https://exampleblog.com,是運行在伺服器端的 /home 資料夾路徑。那當我們對 https://exampleblog.com/site/index.html 訪問時,index.html 應該是在伺服器的 /home/site資料夾裡。

但在許多現在的 web 伺服器裡,URL’s path 不會對應伺服器的資料夾路徑,他可能只代表一些參數要被傳給伺服器而已。

RESTful APIs

REST(Representational State Transfer),是一個標準或慣例用來打造更好的 API。RESTful API的目的就是確立一個規則,讓前端開發者能共同遵循,有更好的開發體驗。這些規則如下:

SEPARATE AND AGNOSTIC

RESTful API 其中一個重點是讓 前後端(client and server) 能互相分離,互不依賴。前端程式可以用任何語言撰寫,後端程式也可以用任何語言撰寫。前後端只需要在一些小地方相同即可,例如 資源的命名、資料傳遞的格式等等。

Stateless

在 RESTful API 中,”STATELESS” 意味著每個客戶端請求都應該包含足夠的信息,以便伺服器可以理解並處理該請求,而無需依賴之前的任何請求。換句話說,伺服器不會在請求之間保留任何狀態信息。每個請求都應該包含所有必要的信息,以便伺服器可以完全理解並處理請求。

例: 假設有個遊戲的伺服器,裡面有100註冊玩家的資料。現在有一個玩家刪除帳號,剩下99個玩家,這在server端是有持續保留與更新資料狀態的。但前後端不該保留任何之前曾經往來的紀錄。

例如,前端向後端要前 10 筆玩家的資料,後端給你了。之後前端又向後端要前 10 筆玩家的資料,後端不該記得前端曾要過10筆資料,而給 11 - 20筆的資料,而是前端指定要 11-20筆的資料。

PATHS

在 RESTful API 的 path 的最後一段,會代表想取得的資源

1
2
3
https://api.boot.dev/v1/courses_rest_api/learn-http/locations
https://api.boot.dev/v1/courses_rest_api/learn-http/users
https://api.boot.dev/v1/courses_rest_api/learn-http/items

上面三組 RESTful API 的最後一段就代表 locations、users、items等資源。