伺服器端 Java 類別,實作 javax.servlet.Servlet 介面,生命週期由容器管理,處理 HTTP 請求/回應。JSP 編譯後即為 Servlet。
| 特性 | Cookie | Session |
|---|---|---|
| 儲存位置 | 客戶端瀏覽器 | 伺服器端記憶體/資料庫/Redis |
| 生命週期控制 | setMaxAge(秒),0=刪除,負數=瀏覽器關閉失效 | 伺服器設定 setMaxInactiveInterval,預設 30 分鐘無操作過期 |
| 容量 | 單個 4KB,域名下約 20-50 個 | 理論無上限,受記憶體限制 |
| 安全性 | 可被竄改、攔截,需加密簽名 | 僅傳遞 Session ID (JSESSIONID),資料不離開伺服器 |
| 實作關係 | 獨立機制 | 預設以 Cookie 儲存 Session ID;若 Cookie 被禁用,用 URL 重寫 (;jsessionid=xxx) 或隱藏表單 |
libmicrohttpd、Mongoose、CivetWeb、libevent + evhttp,直接在 C 程式內建 HTTP 伺服器。CScript、Lua 嵌入 C,邏輯用腳本寫。新專案網路服務開發,建議使用 Go、Rust、Java、Node.js、Python 等高階語言,生態成熟、安全性高、開發效率遠超 C。C 語言適合嵌入式、高頻交易、系統級元件。
「Servlet是服務器端程序... cookie有過期時間... session是服務器端跟蹤客戶端狀態的機制... C語言開發網站比較少,有用它寫cgi或者isapi的」