[{"data":1,"prerenderedAt":941},["ShallowReactive",2],{"navigation_docs":3,"-web-dev-network-osi-model":352,"-web-dev-network-osi-model-surround":936},[4,54,83,116,125,161,179,200],{"title":5,"path":6,"stem":7,"children":8},"Ai","/ai","ai",[9,12,42,46,50],{"title":10,"path":6,"stem":11},"AI 技術探索","ai/index",{"title":13,"path":14,"stem":15,"children":16,"page":41},"Rag","/ai/rag","ai/RAG",[17,21,25,29,33,37],{"title":18,"path":19,"stem":20},"BM25 演算法深入解析：從 TF-IDF 到現代搜尋引擎的核心技術","/ai/rag/bm25-deep-dive-from-tf-idf-to-rag","ai/RAG/bm25-deep-dive-from-tf-idf-to-rag",{"title":22,"path":23,"stem":24},"Dense Retrieval（向量檢索）深入解析","/ai/rag/dense-retrieval-deep-dive","ai/RAG/dense-retrieval-deep-dive",{"title":26,"path":27,"stem":28},"RAG（Retrieval-Augmented Generation）原理與實作入門","/ai/rag/rag-intro-principles-and-implementation","ai/RAG/rag-intro-principles-and-implementation",{"title":30,"path":31,"stem":32},"RAG Retrieval Strategy 深入解析","/ai/rag/rag-retrieval-strategy-deep-dive","ai/RAG/rag-retrieval-strategy-deep-dive",{"title":34,"path":35,"stem":36},"Reciprocal Rank Fusion（RRF）教學：打造更穩定的檢索融合策略","/ai/rag/rrf-reciprocal-rank-fusion-guide","ai/RAG/rrf-reciprocal-rank-fusion-guide",{"title":38,"path":39,"stem":40},"TF-IDF（Term Frequency–Inverse Document Frequency）深入解析","/ai/rag/tf-idf-deep-dive","ai/RAG/tf-idf-deep-dive",false,{"title":43,"path":44,"stem":45},"Docus AI 功能完整實作指南","/ai/docus-ai-implementation","ai/docus-ai-implementation",{"title":47,"path":48,"stem":49},"llms.txt 是什麼？在 Nuxt 中控制 AI 與搜尋引擎爬蟲的新方式","/ai/llms-txt","ai/llms-txt",{"title":51,"path":52,"stem":53},"MCP（Model Context Protocol）是什麼？用「AI 的 USB-C」理解模型如何安全連接工具與資料","/ai/mcp_concept","ai/mcp_concept",{"title":55,"path":56,"stem":57,"children":58,"page":41},"Data Analysis","/data-analysis","data-analysis",[59,63,67,71,75,79],{"title":60,"path":61,"stem":62},"Exploratory Data Analysis（EDA）資料探索分析入門","/data-analysis/exploratory-data-analysis-eda","data-analysis/exploratory-data-analysis-eda",{"title":64,"path":65,"stem":66},"PR-AUC 深入解析：不平衡分類問題的重要評估指標","/data-analysis/pr-auc-for-imbalanced-classification","data-analysis/pr-auc-for-imbalanced-classification",{"title":68,"path":69,"stem":70},"ROC-AUC 深入解析：理解分類模型的判斷能力","/data-analysis/roc-auc-complete-guide","data-analysis/roc-auc-complete-guide",{"title":72,"path":73,"stem":74},"SHAP（SHapley Additive exPlanations）模型解釋方法深入解析","/data-analysis/shap-model-interpretation-complete-guide","data-analysis/shap-model-interpretation-complete-guide",{"title":76,"path":77,"stem":78},"Social Network Analysis（SNA）深入解析","/data-analysis/social-network-analysis-sna","data-analysis/social-network-analysis-sna",{"title":80,"path":81,"stem":82},"Time-based Split：為什麼時間序列資料不能使用 Random Split？","/data-analysis/time-based-split-vs-random-split","data-analysis/time-based-split-vs-random-split",{"title":84,"path":85,"stem":86,"children":87,"page":41},"MachineLearning","/machine_learning","machine_learning",[88,92,96,100,104,108,112],{"title":89,"path":90,"stem":91},"Confusion Matrix（混淆矩陣）完整解析","/machine_learning/confusion-matrix","machine_learning/confusion-matrix",{"title":93,"path":94,"stem":95},"Decision Tree 模型完整教學：從原理到 Python 實作","/machine_learning/decision-tree-complete-guide","machine_learning/decision-tree-complete-guide",{"title":97,"path":98,"stem":99},"為什麼 Decision Tree 在 Tabular Data 上常常勝過 Deep Learning？","/machine_learning/decision-tree-vs-deep-learning-on-tabular-data","machine_learning/decision-tree-vs-deep-learning-on-tabular-data",{"title":101,"path":102,"stem":103},"LightGBM 模型入門：理解高效能的 Gradient Boosting 演算法","/machine_learning/lightgbm-intro-for-tabular-data","machine_learning/lightgbm-intro-for-tabular-data",{"title":105,"path":106,"stem":107},"Logistic Regression（Logit 回歸）完整教學","/machine_learning/logistic-regression-complete-guide","machine_learning/logistic-regression-complete-guide",{"title":109,"path":110,"stem":111},"為什麼模型訓練需要 Train / Validation / Test Dataset？","/machine_learning/train-validation-test-dataset","machine_learning/train-validation-test-dataset",{"title":113,"path":114,"stem":115},"XGBoost 原理與實務教學","/machine_learning/xgboost-complete-guide","machine_learning/xgboost-complete-guide",{"title":117,"path":118,"stem":119,"children":120,"page":41},"Network","/network","network",[121],{"title":122,"path":123,"stem":124},"DNS 設定入門：CNAME vs A Record 完整解析","/network/dns-cname-vs-a-record-guide","network/dns-cname-vs-a-record-guide",{"title":126,"path":127,"stem":128,"children":129},"Nuxt","/nuxt","nuxt",[130,133,137,141,145,149,153,157],{"title":131,"path":127,"stem":132},"Nuxt 實戰指南","nuxt/index",{"title":134,"path":135,"stem":136},"Abstraction Layer 與 Adapter 的差別，一次搞懂設計角色","/nuxt/adapter_abstraction_layer","nuxt/adapter_abstraction_layer",{"title":138,"path":139,"stem":140},"Nuxt 4 全面理解 — 專案檔案結構解析","/nuxt/directory_structure","nuxt/directory_structure",{"title":142,"path":143,"stem":144},"Nuxt 前端 build 流程完整解析","/nuxt/frontend_build","nuxt/frontend_build",{"title":146,"path":147,"stem":148},"Nitro 是什麼？從 Nuxt 專案到 Server 與 Edge 的關鍵引擎","/nuxt/nitro","nuxt/nitro",{"title":150,"path":151,"stem":152},"深入理解 Nuxt 的 .nuxt 與 .output：為什麼部署時一定要分清楚？","/nuxt/nuxt_and_output","nuxt/nuxt_and_output",{"title":154,"path":155,"stem":156},"Nuxt 中 dev、build、preview 的差異一次搞懂","/nuxt/nuxt_dev_build_preview","nuxt/nuxt_dev_build_preview",{"title":158,"path":159,"stem":160},"Nuxt Image vs \u003Cimg>：為什麼 Nuxt 3 專案幾乎都該用 \u003CNuxtImg>？","/nuxt/nuxt_image","nuxt/nuxt_image",{"title":162,"path":163,"stem":164,"children":165},"Python 程式開發","/python","python/index",[166,167,171,175],{"title":162,"path":163,"stem":164},{"title":168,"path":169,"stem":170},"如何在 FastAPI 中調用記憶體 Buffer 回傳圖片 (附實例)","/python/memory_buffer","python/memory_buffer",{"title":172,"path":173,"stem":174},"Python 單元測試教學：如何為你的程式撰寫 Test","/python/python-unit-testing-unittest-pytest","python/python-unit-testing-unittest-pytest",{"title":176,"path":177,"stem":178},"如何使用 uv 取代 pip：改善 Python 專案的開發流程","/python/uv","python/uv",{"title":180,"path":181,"stem":182,"children":183,"page":41},"Statistic","/statistic","statistic",[184,188,192,196],{"title":185,"path":186,"stem":187},"卡方檢定（Chi-Square Test）入門教學","/statistic/chi-square-test-intro","statistic/chi-square-test-intro",{"title":189,"path":190,"stem":191},"常見抽樣方法（Sampling Methods）教學：Stratified、Quota、Convenience、Systematic、Simple Random","/statistic/common-sampling-methods-guide","statistic/common-sampling-methods-guide",{"title":193,"path":194,"stem":195},"Cramér’s V 指標介紹：如何衡量兩個類別變數之間的關聯","/statistic/cramers-v-for-categorical-association","statistic/cramers-v-for-categorical-association",{"title":197,"path":198,"stem":199},"Mann–Whitney U 與 Kolmogorov–Smirnov（KS）檢定：非參數統計檢定的入門指南","/statistic/mann-whitney-u-and-ks-test-intro","statistic/mann-whitney-u-and-ks-test-intro",{"title":201,"path":202,"stem":203,"children":204},"WebDev","/web_dev","web_dev",[205,208,234,248,282,312,334],{"title":206,"path":202,"stem":207},"Web 前端開發","web_dev/index",{"title":209,"path":210,"stem":211,"children":212},"瀏覽器與渲染","/web_dev/browser","web_dev/browser/index",[213,214,218,222,226,230],{"title":209,"path":210,"stem":211},{"title":215,"path":216,"stem":217},"瀏覽器儲存空間完整解析：Cookie、localStorage、IndexedDB 到 Cache Storage","/web_dev/browser/browser-storage-comprehensive-guide","web_dev/browser/browser-storage-comprehensive-guide",{"title":219,"path":220,"stem":221},"DOM (Document Object Model) 深入解析","/web_dev/browser/dom","web_dev/browser/dom",{"title":223,"path":224,"stem":225},"Service Worker Request Flow 深入解析","/web_dev/browser/service-worker-request-flow","web_dev/browser/service-worker-request-flow",{"title":227,"path":228,"stem":229},"CSR、SSR 與 SSG 是什麼？前端渲染策略完整比較","/web_dev/browser/ssr_csr_ssg","web_dev/browser/ssr_csr_ssg",{"title":231,"path":232,"stem":233},"Virtual DOM 深入解析：為什麼它能優化前端效能？","/web_dev/browser/virtual_dom","web_dev/browser/virtual_dom",{"title":235,"path":236,"stem":237,"children":238},"圖形技術","/web_dev/graphics","web_dev/graphics/index",[239,240,244],{"title":235,"path":236,"stem":237},{"title":241,"path":242,"stem":243},"為什麼 Three.js 專案幾乎都選擇 CSR？從 SSR 問題談起","/web_dev/graphics/threejs_csr","web_dev/graphics/threejs_csr",{"title":245,"path":246,"stem":247},"WebGL 是什麼？為什麼前端 3D 幾乎都靠它？","/web_dev/graphics/webgl","web_dev/graphics/webGL",{"title":249,"path":250,"stem":251,"children":252},"架構與配置","/web_dev/infrastructure","web_dev/infrastructure/index",[253,254,258,262,266,270,274,278],{"title":249,"path":250,"stem":251},{"title":255,"path":256,"stem":257},"Zeabur + K3s + Nuxt 部署架構完整解析","/web_dev/infrastructure/k3s-zeabur","web_dev/infrastructure/K3s-zeabur",{"title":259,"path":260,"stem":261},"ECS vs Docker vs Kubernetes：從部署堆疊理解三層架構","/web_dev/infrastructure/ecs-docker-kubernetes-stack","web_dev/infrastructure/ecs-docker-kubernetes-stack",{"title":263,"path":264,"stem":265},"ECS vs VPS 是什麼？從部署網站的角度一次搞懂差別","/web_dev/infrastructure/ecs-vs-vps","web_dev/infrastructure/ecs-vs-vps",{"title":267,"path":268,"stem":269},"Zeabur 內網服務連線完整入門指南","/web_dev/infrastructure/k3s-internal-networking","web_dev/infrastructure/k3s-internal-networking",{"title":271,"path":272,"stem":273},"使用 Microservices 架構設計系統的優勢解析","/web_dev/infrastructure/microservices-architecture-advantages","web_dev/infrastructure/microservices-architecture-advantages",{"title":275,"path":276,"stem":277},"Nginx 入門教學：從反向代理到與 Kubernetes 的架構比較","/web_dev/infrastructure/nginx-intro","web_dev/infrastructure/nginx-intro",{"title":279,"path":280,"stem":281},"YAML 配置是什麼？為什麼現代開發都在用它","/web_dev/infrastructure/yaml-configuration","web_dev/infrastructure/yaml-configuration",{"title":283,"path":284,"stem":285,"children":286},"網絡與通訊","/web_dev/network","web_dev/network/index",[287,288,292,296,300,304,308],{"title":283,"path":284,"stem":285},{"title":289,"path":290,"stem":291},"HTTP Request 結構完整解析：從 Request Line 到 Header 一次看懂","/web_dev/network/http-request-structure","web_dev/network/http-request-structure",{"title":293,"path":294,"stem":295},"OSI 模型（Open Systems Interconnection Model）完整解析","/web_dev/network/osi-model","web_dev/network/osi-model",{"title":297,"path":298,"stem":299},"RESTful API 設計原則與實務解析","/web_dev/network/restful-api","web_dev/network/restful-api",{"title":301,"path":302,"stem":303},"RESTful API 五大設計原則深入解析","/web_dev/network/restful-api-principles","web_dev/network/restful-api-principles",{"title":305,"path":306,"stem":307},"Server-Sent Events (SSE) 深入解析與實作教學","/web_dev/network/sse-introduction","web_dev/network/sse-introduction",{"title":309,"path":310,"stem":311},"WebSocket 入門教學：從概念到 Node.js 實作","/web_dev/network/websocket-introduction","web_dev/network/websocket-introduction",{"title":313,"path":314,"stem":315,"children":316},"認證與安全","/web_dev/security","web_dev/security/index",[317,318,322,326,330],{"title":313,"path":314,"stem":315},{"title":319,"path":320,"stem":321},"使用 Cookie 與 Session 建立使用者驗證（完整新手教學）","/web_dev/security/cookie-session-authentication","web_dev/security/cookie-session-authentication",{"title":323,"path":324,"stem":325},"JWT 驗證機制完整解析：從登入流程到實務應用","/web_dev/security/jwt-authentication","web_dev/security/jwt-authentication",{"title":327,"path":328,"stem":329},"Secret Key 簽名是什麼？從零理解資料簽名的本質","/web_dev/security/secret-key-signing","web_dev/security/secret-key-signing",{"title":331,"path":332,"stem":333},"SSH（Secure Shell）是什麼？從遠端登入到安全通道的核心概念","/web_dev/security/ssh","web_dev/security/ssh",{"title":335,"path":336,"stem":337,"children":338},"SEO 與規範","/web_dev/seo","web_dev/seo/index",[339,340,344,348],{"title":335,"path":336,"stem":337},{"title":341,"path":342,"stem":343},"Canonical URL 是什麼？用生活化方式搞懂前端 SEO 的基本保命符","/web_dev/seo/canonical_link","web_dev/seo/canonical_link",{"title":345,"path":346,"stem":347},"robots.txt 是什麼？SEO 的第一道守門員","/web_dev/seo/robot_txt","web_dev/seo/robot_txt",{"title":349,"path":350,"stem":351},"Nuxt SEO 中的 Meta 與 SEO 工具是如何運作的？","/web_dev/seo/seo","web_dev/seo/seo",{"id":353,"title":293,"body":354,"description":923,"extension":924,"links":925,"meta":926,"navigation":933,"path":294,"seo":934,"stem":295,"__hash__":935},"docs/web_dev/network/osi-model.md",{"type":355,"value":356,"toc":898},"minimark",[357,361,366,370,378,381,384,388,391,402,412,414,418,421,424,452,455,457,461,464,467,486,489,491,495,498,501,512,515,517,521,524,527,541,546,557,561,572,575,577,581,584,587,601,604,606,610,613,616,633,636,638,642,645,647,658,661,663,667,670,715,722,724,728,731,802,805,807,811,814,818,821,832,836,839,850,854,857,859,862,865,868,870,873],[358,359,293],"h1",{"id":360},"osi-模型open-systems-interconnection-model完整解析",[362,363,365],"h2",{"id":364},"為什麼需要-osi-模型","為什麼需要 OSI 模型？",[367,368,369],"p",{},"當我們在瀏覽網頁、發送 API request，或是使用 WebSocket 建立即時連線時，背後其實牽涉到一整套複雜的網路通訊機制。但如果沒有一個清楚的分層架構，整個系統將會非常難以設計與維護。",[367,371,372,373,377],{},"OSI 模型（Open Systems Interconnection Model）就是為了解決這個問題而誕生的。它的核心思想非常簡單：",[374,375,376],"strong",{},"把複雜的網路通訊流程拆成多個層，每一層只負責一件事情","。這種分層設計讓不同廠商、不同系統之間能夠彼此溝通，同時也讓工程師可以更容易定位問題。",[367,379,380],{},"你可以把它想像成一個「分工明確的團隊」，每個人只專注做好自己的事情，但彼此之間有明確的溝通規則。",[382,383],"hr",{},[362,385,387],{"id":386},"osi-七層模型總覽","OSI 七層模型總覽",[367,389,390],{},"OSI 模型將網路通訊拆分為七層，每一層都有明確的責任與功能：",[392,393,399],"pre",{"className":394,"code":396,"language":397,"meta":398},[395],"language-text","7. Application Layer    應用層\n6. Presentation Layer   表示層\n5. Session Layer        會話層\n4. Transport Layer      傳輸層\n3. Network Layer        網路層\n2. Data Link Layer      資料連結層\n1. Physical Layer       實體層\n","text","",[400,401,396],"code",{"__ignoreMap":398},[403,404,405],"blockquote",{},[367,406,407,411],{},[408,409,410],"span",{},"!NOTE","\n這七層從上到下，代表資料從「應用程式」一路傳遞到「實際的電訊號」的過程。",[382,413],{},[362,415,417],{"id":416},"一application-layer應用層","一、Application Layer（應用層）",[367,419,420],{},"應用層是最接近使用者的層，所有你平常接觸到的網路服務都在這裡發生。",[367,422,423],{},"例如：",[425,426,427,434,440,446],"ul",{},[428,429,430,433],"li",{},[374,431,432],{},"HTTP","（瀏覽器請求）",[428,435,436,439],{},[374,437,438],{},"HTTPS","（加密網頁）",[428,441,442,445],{},[374,443,444],{},"FTP","（檔案傳輸）",[428,447,448,451],{},[374,449,450],{},"SMTP","（寄信）",[367,453,454],{},"當你在瀏覽器輸入一個網址時，實際上就是應用層在發送 request。在現代 Web 開發中，你寫的 FastAPI、Node.js server，其實就是運作在這一層。",[382,456],{},[362,458,460],{"id":459},"二presentation-layer表示層","二、Presentation Layer（表示層）",[367,462,463],{},"表示層負責處理資料的「格式與轉換」，確保資料在不同系統之間可以被正確理解。",[367,465,466],{},"它主要做三件事：",[425,468,469,475,481],{},[428,470,471,474],{},[374,472,473],{},"資料格式轉換","（例如 JSON ↔ XML）",[428,476,477,480],{},[374,478,479],{},"加密與解密","（例如 SSL/TLS）",[428,482,483],{},[374,484,485],{},"壓縮與解壓縮",[367,487,488],{},"例如 HTTPS 的加密，其實就是在這一層處理的。",[382,490],{},[362,492,494],{"id":493},"三session-layer會話層","三、Session Layer（會話層）",[367,496,497],{},"會話層負責管理「連線的建立、維持與關閉」。",[367,499,500],{},"它的工作包括：",[425,502,503,506,509],{},[428,504,505],{},"建立 session（例如登入狀態）",[428,507,508],{},"控制連線中斷與恢復",[428,510,511],{},"管理多個 request 的關係",[367,513,514],{},"在現代 Web 中，雖然這一層的概念比較不明顯，但像是 cookie、session 機制，其實就是這一層的延伸。",[382,516],{},[362,518,520],{"id":519},"四transport-layer傳輸層","四、Transport Layer（傳輸層）",[367,522,523],{},"傳輸層是整個網路通訊中非常關鍵的一層，它負責「資料是否可靠送達」。",[367,525,526],{},"最常見的兩種協議：",[425,528,529,535],{},[428,530,531,534],{},[374,532,533],{},"TCP","（可靠傳輸）",[428,536,537,540],{},[374,538,539],{},"UDP","（快速但不保證）",[542,543,545],"h3",{"id":544},"tcp-的特性","TCP 的特性",[425,547,548,551,554],{},[428,549,550],{},"保證資料順序",[428,552,553],{},"會重傳遺失封公",[428,555,556],{},"有流量控制",[542,558,560],{"id":559},"udp-的特性","UDP 的特性",[425,562,563,566,569],{},[428,564,565],{},"不保證送達",[428,567,568],{},"延遲低",[428,570,571],{},"適合即時應用（如遊戲、影音串流）",[367,573,574],{},"當你在設計 API 或 WebSocket 時，其實就是在思考「要不要可靠傳輸」的問題。",[382,576],{},[362,578,580],{"id":579},"五network-layer網路層","五、Network Layer（網路層）",[367,582,583],{},"網路層負責「資料如何從 A 走到 B」，也就是所謂的 routing（路由）。",[367,585,586],{},"核心概念包含：",[425,588,589,595],{},[428,590,591,594],{},[374,592,593],{},"IP Address","（IP 位址）",[428,596,597,600],{},[374,598,599],{},"Routing","（路徑選擇）",[367,602,603],{},"當你發送一個 request 到另一個國家的 server，網路層會決定封包要經過哪些路由器，最終抵達目的地。",[382,605],{},[362,607,609],{"id":608},"六data-link-layer資料連結層","六、Data Link Layer（資料連結層）",[367,611,612],{},"資料連結層負責「同一個網路內的資料傳輸」。",[367,614,615],{},"它主要處理：",[425,617,618,623,628],{},[428,619,620],{},[374,621,622],{},"MAC Address",[428,624,625],{},[374,626,627],{},"封包錯誤檢測（CRC）",[428,629,630],{},[374,631,632],{},"Frame（資料幀）",[367,634,635],{},"簡單來說，它確保資料能在「同一個區域網路（LAN）」內正確傳遞。",[382,637],{},[362,639,641],{"id":640},"七physical-layer實體層","七、Physical Layer（實體層）",[367,643,644],{},"實體層是最底層，負責將資料轉換成實際的訊號。",[367,646,423],{},[425,648,649,652,655],{},[428,650,651],{},"電訊號（網路線）",[428,653,654],{},"光訊號（光纖）",[428,656,657],{},"無線訊號（Wi-Fi）",[367,659,660],{},"這一層不關心資料內容，只關心「0 和 1 如何被傳送」。",[382,662],{},[362,664,666],{"id":665},"從-request-的角度理解-osi","從 Request 的角度理解 OSI",[367,668,669],{},"我們可以用一個實際例子來理解整個流程。當你發送一個 HTTP request 時：",[671,672,673,679,685,691,697,703,709],"ol",{},[428,674,675,678],{},[374,676,677],{},"Application Layer","：產生 HTTP request",[428,680,681,684],{},[374,682,683],{},"Presentation Layer","：進行加密（HTTPS）",[428,686,687,690],{},[374,688,689],{},"Session Layer","：建立連線",[428,692,693,696],{},[374,694,695],{},"Transport Layer","：切割資料（TCP segment）",[428,698,699,702],{},[374,700,701],{},"Network Layer","：加上 IP 位址",[428,704,705,708],{},[374,706,707],{},"Data Link Layer","：轉成 frame（加上 MAC）",[428,710,711,714],{},[374,712,713],{},"Physical Layer","：轉成訊號送出",[367,716,717,718,721],{},"接收端則會反向處理，逐層解開資料。這個過程稱為 ",[374,719,720],{},"Encapsulation（封裝）與 Decapsulation（解封裝）","。",[382,723],{},[362,725,727],{"id":726},"osi-vs-tcpip-模型","OSI vs TCP/IP 模型",[367,729,730],{},"在實務上，我們更常使用的是 TCP/IP 模型，它是 OSI 的簡化版本：",[732,733,734,748],"table",{},[735,736,737],"thead",{},[738,739,740,745],"tr",{},[741,742,744],"th",{"align":743},"left","OSI 模型",[741,746,747],{"align":743},"TCP/IP 模型",[749,750,751,759,766,773,780,787,795],"tbody",{},[738,752,753,757],{},[754,755,756],"td",{"align":743},"Application",[754,758,756],{"align":743},[738,760,761,764],{},[754,762,763],{"align":743},"Presentation",[754,765,756],{"align":743},[738,767,768,771],{},[754,769,770],{"align":743},"Session",[754,772,756],{"align":743},[738,774,775,778],{},[754,776,777],{"align":743},"Transport",[754,779,777],{"align":743},[738,781,782,784],{},[754,783,117],{"align":743},[754,785,786],{"align":743},"Internet",[738,788,789,792],{},[754,790,791],{"align":743},"Data Link",[754,793,794],{"align":743},"Network Access",[738,796,797,800],{},[754,798,799],{"align":743},"Physical",[754,801,794],{"align":743},[367,803,804],{},"TCP/IP 更貼近實際網路實作，而 OSI 更偏向「教學與設計思維」。",[382,806],{},[362,808,810],{"id":809},"為什麼工程師一定要懂-osi","為什麼工程師一定要懂 OSI？",[367,812,813],{},"理解 OSI 模型的最大價值，不是背七層，而是建立系統化的故障排除與設計思維。",[542,815,817],{"id":816},"_1-問題定位能力","1. 問題定位能力",[367,819,820],{},"當 API timeout，你可以思考：",[425,822,823,826,829],{},[428,824,825],{},"是 DNS 問題？（Network）",[428,827,828],{},"還是 TCP 連線失敗？（Transport）",[428,830,831],{},"還是應用層 error？（Application）",[542,833,835],{"id":834},"_2-系統設計能力","2. 系統設計能力",[367,837,838],{},"在設計架構時，你會知道：",[425,840,841,844,847],{},[428,842,843],{},"Nginx 在 L7（Application）",[428,845,846],{},"Load balancer 可以在 L4 或 L7",[428,848,849],{},"TLS termination 發生在哪一層",[542,851,853],{"id":852},"_3-抽象能力","3. 抽象能力",[367,855,856],{},"OSI 是一種「抽象分層思維」，這種能力在 Microservices、Clean Architecture、Kubernetes 架構設計中都非常重要。",[382,858],{},[362,860,861],{"id":861},"結論",[367,863,864],{},"OSI 模型本質上是一個「將複雜系統拆解」的思維工具。透過七層分工，它讓網路通訊變得可理解、可維護，也讓不同系統之間能夠協作。",[367,866,867],{},"對工程師來說，真正重要的不是死記每一層，而是理解每一層在「解決什麼問題」。一旦掌握這個觀念，你在學習 Nginx、Kubernetes、甚至是分散式系統時，都會更容易建立清晰的架構理解。",[382,869],{},[362,871,872],{"id":872},"參考資料",[671,874,875,884,891],{},[428,876,877],{},[878,879,883],"a",{"href":880,"rel":881},"https://en.wikipedia.org/wiki/OSI_model",[882],"nofollow","OSI model - Wikipedia",[428,885,886],{},[878,887,890],{"href":888,"rel":889},"https://www.cloudflare.com/learning/ddos/glossary/open-systems-interconnection-model-osi/",[882],"What is the OSI Model? - Cloudflare",[428,892,893],{},[878,894,897],{"href":895,"rel":896},"https://www.ibm.com/topics/osi-model",[882],"OSI Model - IBM",{"title":398,"searchDepth":899,"depth":899,"links":900},2,[901,902,903,904,905,906,911,912,913,914,915,916,921,922],{"id":364,"depth":899,"text":365},{"id":386,"depth":899,"text":387},{"id":416,"depth":899,"text":417},{"id":459,"depth":899,"text":460},{"id":493,"depth":899,"text":494},{"id":519,"depth":899,"text":520,"children":907},[908,910],{"id":544,"depth":909,"text":545},3,{"id":559,"depth":909,"text":560},{"id":579,"depth":899,"text":580},{"id":608,"depth":899,"text":609},{"id":640,"depth":899,"text":641},{"id":665,"depth":899,"text":666},{"id":726,"depth":899,"text":727},{"id":809,"depth":899,"text":810,"children":917},[918,919,920],{"id":816,"depth":909,"text":817},{"id":834,"depth":909,"text":835},{"id":852,"depth":909,"text":853},{"id":861,"depth":899,"text":861},{"id":872,"depth":899,"text":872},"從概念到實務，深入理解 OSI 七層模型如何運作，並掌握網路系統設計的核心思維。","md",null,{"tags":927,"category":203,"date":932},[119,928,929,930,931],"osi","tcp/ip","backend","system_design","2026-04-11",true,{"title":293,"description":923},"uy5ebh4caV-k-0-WFcGpRu2bnZ5WOkxRCWXTVvw0Bsc",[937,939],{"title":289,"path":290,"stem":291,"description":938,"children":-1},"透過真實瀏覽器送出的 HTTP Request 範例，逐行拆解每個欄位的意義，建立完整的 HTTP 心智模型。",{"title":297,"path":298,"stem":299,"description":940,"children":-1},"深入理解 RESTful API 的核心概念、五大設計原則與實務範例，建立正確的 API 架構思維。",1776690847508]