HTTP 教學

HTTP 教學 系列,依使用情境分為六大章 (擴充中 😅),

從最簡易的 URI、資源、表示 (表徵)…,

慢慢帶入 編碼、中介、快取…甚至流量監控 與 訊息追蹤。
 
其中,也花費許多篇幅探討背後的指導原則 — REST 架構風格

許多人誤將 REST 視為 just『 CRUD + URL 』,

而忽略其解耦與設計權衡的精髓,較為可惜 🙁。
 
全系列以 RFC 7230 ~ RFC 7235 規範而著,

並以 Roy Thomas 的 REST 論文為輔,

期望給您最正確、標準的 HTTP 介紹 😃。
 
 

一、介面

HTTP/1.1 — 超文本傳輸協定 (Hypertext Transfer Protocol)

HTTP (Hypertext Transfer Protocol) 超文本傳輸 ...
閱讀更多…
/ HTTP

HTTP 之 Client、Server 角色定位

客戶端 (Client),指用來發起連線, 建構並發出 一或多個 請求 (req ...
閱讀更多…
/ HTTP
DIP-electricity-ex

REST API 架構約束 — HTTP 統一介面

客戶-伺服端 (Client-Server),或俗稱 主從式架構 (我不太喜歡這 ...
閱讀更多…
/ HTTP

二、資源、表示、URI

browser-URL

統一資源識別符 (URI)

在 (1-3) 統一介面 (Uniform Interface) 中,我們介紹: ...
閱讀更多…
/ HTTP
jason-html

HTTP 資源、表示、URI

首先釐清一個觀念: 資源 (resource),是對一實體集合的『概念』映射 ( ...
閱讀更多…
/ HTTP
web-resources

HTTP URI 設計 (URI Design)

統一資源識別符 (URI) 是 Web 架構中最簡單的元素,也是最重要的 ! 良 ...
閱讀更多…
/ HTTP

三、訊息、表示、酬載

http-request-message

HTTP/1.1 — 訊息格式 (Message Format)

HTTP 透過 統一介面 (uniform interface) 使: Clie ...
閱讀更多…
/ HTTP

HTTP 內容類型 (Content-Type) & 內容編碼 (Content-Encoding)

(2-2) 資源、表示、URI: 表示 (representation) ...
閱讀更多…
/ HTTP
negotiation

HTTP 內容協商 (Content Negotiation)

一個 資源,可能具有不同的 表示 (representation) 方式 (不同 ...
閱讀更多…
/ HTTP

HTTP 酬載 — Content-Length, Transfer-Encoding, Content-Range, Trailer

資料酬載 (payload) 或稱 酬載、有效載荷, 是傳輸時 實際預期的資料, ...
閱讀更多…
/ HTTP

(補充) 以 JavaScript 發送 HTTP 請求

第三 ~ 四章 開始變得抽象,對於新手較不易理解,

因此以一實用範例,教您『 以 JavaScript 操作 HTTP,與 後端 API 進行溝通 』,

最後,解析回應 的 JSON 資料,並以之 渲染頁面
 
(2017/08/01 補充)
 

jQuery Ajax — JavaScript 發送 HTTP 請求 (II)

此系列主要討論 JavaScript 發 ...
閱讀更多…
Fetch-API

Fetch API — JavaScript 發送 HTTP 請求 (III)

此系列主要討論 JavaScript 發 ...
閱讀更多…

四、請求/回應 (Request/Response)

HTTP 請求方法 (Request Method)

(2-3) URI 設計 (URI Design) 提到, HTTP 其中一個設 ...
閱讀更多…
/ HTTP
get-vs-post

HTTP GET vs POST

本篇 GET vs. POST,主要介紹 GET 與 POST 的差異、性質,及 ...
閱讀更多…
/ HTTP

HTTP 請求方法 — HEAD、PUT、DELETE

目錄HEAD屬性 (property)PUT屬性 (property)參數 與 ...
閱讀更多…
/ HTTP

發送 HTTP 請求 (Node.js、Postman、Insomnia 與 HTTP Prompt)

請求訊息發送者,別名為 — — HTTP Client, ...
閱讀更多…
/ HTTP

以 C Socket 實作 HTTP Client

至今已介紹利用 表單 與其 方法欺騙 的方式送出請求, 以及 JavaScrip ...
閱讀更多…
/ HTTP, Socket
HTTP Response Code Cheatsheet

HTTP 狀態碼 (Status Codes)

HTTP 回應狀態碼 (Response Status Codes), 是由 3 ...
閱讀更多…
/ HTTP

五、分層系統 (Layered System)

中介 (Intermediaries) 示意圖

HTTP 訊息路由 (Message Routing)

中介 (Intermediaries) 示意圖 請求: HTTP 請求訊息路由, ...
閱讀更多…
/ HTTP
proxy

HTTP 代理 (proxy)、隧道 (tunnel) 與 閘道 (gateway)

HTTP 允許使用 中介 (Intermediary): 以 連接鏈 (chai ...
閱讀更多…
/ HTTP

HTTP 流量監控 (Traffic Monitor)

Photo by Fiddler. (5-2) 代理 (proxy)、隧道 (t ...
閱讀更多…
/ HTTP

HTTP 訊息追蹤 (Message Tracing)

(5-2) 代理 (proxy)、隧道 (tunnel) 與 閘道 (gatew ...
閱讀更多…
/ HTTP

HTTP 虛擬主機 (Virtual Host)

如 (2-1) 統一資源識別符 (URI) 所述, Client 會先透過 名稱 ...
閱讀更多…
/ HTTP

六、快取 (Cache)

HTTP 快取 (Cache)

最好的請求,是不必與伺服器進行通訊的請求。 — Google web ...
閱讀更多…
/ HTTP

HTTP 免網路請求 !! — 新鮮回應 (fresh response)

就像食品擁有 保存期限,快取 (Cache) 擁有一段 新鮮時限 (freshn ...
閱讀更多…
/ HTTP

HTTP 何時驗證快取 no-cache? no-store?

當 快取 (回應) 以 顯式、啟發式 計算為過期,則稱 陳舊回應 (Stale ...
閱讀更多…
/ HTTP

HTTP 快取驗證 與 條件請求 (Conditional Requests)

所謂 驗證 (Validate) 或 重新驗證 (revalidate), 即是 ...
閱讀更多…
/ HTTP