整理〈從傳紙條輕鬆學習基本網路概念〉文中傳紙條與網路概念的對照,以及第四週自我檢討部分筆記。
TCP/ IP 四層模型
應用層:HTTP(Hypertext Transfer Protocol)、FTP(File Transfer protocol)
規範通訊內容格式,以利電腦解析。
從訂便當的比喻對照:
回覆格式:Status code
動作標準化:HTTP method
格式統一、特殊需求:request header/ body
服務代碼:Port(連接埠),一台主機可以跑不同的服務。HTTP 預設為 80,FTP 為 21。
傳輸層:TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)
透過 TCP 三次握手確保雙方通訊收發正常。
而像是重視即時傳輸性的即時戰況、直播...等,則會使用 UDP。
網路互連層:IP(Internet Protocol)
傳紙條要知道寄、收信人是誰,在網路世界中也需知道來源與目的地。
網路存取層:海底電纜
HTTP Header
什麼是 HTTP Header?
先看〈MDN HTTP headers〉怎麼說:
HTTP headers allow the client and the server to pass additional information with the request or the response.
就像訂便當的舉例中,特殊需求的部分會寫在 header 一樣,額外資訊也會寫在 HTTP 的 Header 上。
常用的 HTTP Header
1. General
- Request URL
- Request Method
- Status Code
- Referrer Policy
HTTP referer 可以檢查訪客從哪裡來,會有利於訪客分析,採用格式是 URL。但 URL 中可能會包含不便於透漏給第三知道的個人資訊,於是透過 Referrer Policy 用以規範 HTTP referer URL 如何發送。
參考:
一點也不重要的 fun fact:referer 是 referrer 的誤寫,而在中文配音的蠟筆小新動畫中,小新媽媽野原美冴唸做ㄧㄝˇ ㄩㄢˊ ㄇㄟˇ ㄧㄚˊ,其實中文發音應該是一ㄝˇ ㄩㄢˊ ㄇㄟˇ ㄏㄨˋ,但因為當初配音員唸錯了,於是就一直將錯就錯下去ㄌ。
2. Response Headers
- Content-type
用以定義內容格式,決定瀏覽器如何讀取文件。
參考:
3. Request Headers
- User-Agent
可以知道使用者用什麼瀏覽器、瀏覽器版本、網頁渲染引擎、電腦系統等資訊。
HTTP Method
- GET:取得指定資料。像是搜尋資料。
- POST:提交指定資源。像是填寫表單。
- DELETE:刪除指定資源。
- PATCH:指定資源的部份修改。
參考:
HTTP Stauts Code
主要分為 1~5 開頭五種。
- 1 開頭:Informational responses
- 2 開頭:Successful responses
- 3 開頭:Redirects
- 4 開頭:Client errors
- 5 開頭:Server errors
較常見的 Status Code:
- 200 OK:請求成功
- 204 No Content
- 301 Moved Permanently
- 302 Found:與 301 不同的是請求資源的 URI 是暫時更動
- 400 Bad Request:因 req 語法有問題,導致 server 無法解析。
- 404 Not Found
- 500 Internal Server Error:伺服器端發生未知或無法處理的錯誤
- 503 Service Unavailable
參考: