HTTP
超文本傳輸協定 (HTTP) 是一種用來傳輸超媒體文件(像是 HTML 文件)的應用層協定,被設計來讓瀏覽器和伺服器進行溝通,但也可做其他用途。HTTP 遵循標準客戶端—伺服器模式,由客戶端連線以發送請求,然後等待接收回應。HTTP 是一種無狀態協定,意思是伺服器不會保存任兩個請求間的任何資料 (狀態)。儘管作為 TCP/IP 的應用層,HTTP 亦可應用於其他可靠的傳輸層(例如 UDP),只要不會無聲無息地遺失訊息即可。
教學
學習如何使用 HTTP 的指南和教程。
- HTTP 的概觀
-
基本特性:它能做什麼與它的用途
- HTTP Cache
-
Cache 對網站速度很重要。 此文章描敘不同的方法使用 HTTP Header 控制它。
-
RFC 6265 定義了 cookies 的工作方式,當 HTTP 請求一個服務時,一個伺服器可以發送一個
Set-Cookie
的 HTTP header 回應。客戶端將以 header 的方式回傳 cookie 值給每個請求的同 一個伺服器,Cookie 也會在某些時間進行更新,或是限制一個實體網域或路徑。 - HTTP Access Control (CORS)
-
Cross-site HTTP requests 是來自不同網域的資源請求。舉個例子,一個 HTML 網頁從網域 A (
http://domaina.example/
) 從網域 B(http://domainb.foo/image.jpg
)請求一個圖片,經由img
元件。現今的網頁通常會讀取跨站資源,包括 CSS 樣式表、圖片、腳本與其他資源。CORS 允許網頁開發人員的網站響應跨站讀取。 - HTTP 的演化
-
HTTP 早期版本變化的簡要說明,到現在的 HTTP/2 與其他版本。
- 網頁安全方針
-
一些技巧幫助運作團隊開發安全的網頁。
- HTTP 訊息
-
描述 HTTP/1 與 HTTP/2 不同類別與結構。
- 一個典型 HTTP 對話
-
顯示並解釋 HTTP 的通常對話流程。
- HTTP/1.x 的連接管理
-
描述在 HTTP/1.x 中可用的三種連接管理。
參考
詳細的 HTTP 參考文件。
- HTTP Headers
-
HTTP 訊息檔頭(header)用於描述資源、伺服器或用戶端的行為。可以透過
X-
前綴以增加自定義的專有項目。其他的項目可以在 IANA registry 中找到,其原始定義在 RFC 4229。IANA 同時也維護 新 HTTP 訊息檔頭的提案登記(registry of proposed new HTTP message headers)。 - HTTP 請求方法
-
透過 HTTP 有幾種不同操作方法:
GET
、POST
,或是較少見的請求方法,如OPTIONS
、DELETE
、或TRACE
。 - HTTP 狀態回應碼
-
HTTP 狀態碼用來表示特定的 HTTP 請求是否已成功完成。回應分為五類:資訊回應、成功回應、重定向、用戶端錯誤、以及伺服器錯誤。
- CSP 指令
-
Content-Security-Policy
回應檔頭讓網站管理員控制哪些頁面上的資源能被用戶端程式(user agent)載入。除了少數特例外,此政策主要關於指定來源伺服器和腳本程式的端點(endpoints)。
工具與資源
有助了解與測試 HTTP 的工具和資源。
- Firefox 開發者工具
- Mozilla Observatory
-
旨在幫助開發者、系統管理員和安全專業人員安全地配置網站的專案。
- RedBot
-
用於檢查與暫存相關的 HTTP 檔頭的工具。
- 瀏覽器的運作方式
-
關於瀏覽器內部實作及 HTTP 通訊協定請求流程的一篇非常詳盡的文章。可以說是所有 Web 開發者都必讀的內容。