{"version":1,"pages":[{"id":"S1xmfDFjvT9edT9xTeis","title":"README","pathname":"/","siteSpaceId":"sitesp_Z16vz","description":""},{"id":"CScBOzFzXql8GQ07JIve","title":"PART01.Web框架概览","pathname":"/part01.web-kuang-jia-gai-lan","siteSpaceId":"sitesp_Z16vz"},{"id":"G8M9S9621bZ5fGG0gqyG","title":"1.01 Web框架概览:学习路线","pathname":"/part01.web-kuang-jia-gai-lan/1.01-web-kuang-jia-gai-lan-xue-xi-lu-xian","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART01.Web框架概览"}]},{"id":"fxWv05p38qDxrlapAVJY","title":"1.02 Web框架概览-Beego框架分析","pathname":"/part01.web-kuang-jia-gai-lan/1.02-web-kuang-jia-gai-lan-beego-kuang-jia-fen-xi","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART01.Web框架概览"}]},{"id":"okLz4coRFzdh6RUj026J","title":"1.03 Web框架概览-GIN框架分析","pathname":"/part01.web-kuang-jia-gai-lan/1.03-web-kuang-jia-gai-lan-gin-kuang-jia-fen-xi","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART01.Web框架概览"}]},{"id":"Nf0ptHnD54NbQdgpjUoA","title":"1.04 Web框架概览-Iris框架分析","pathname":"/part01.web-kuang-jia-gai-lan/1.04-web-kuang-jia-gai-lan-iris-kuang-jia-fen-xi","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART01.Web框架概览"}]},{"id":"jqWOSWmwtH6dF5DvW8WP","title":"1.05 Web框架概览-Echo框架分析","pathname":"/part01.web-kuang-jia-gai-lan/1.05-web-kuang-jia-gai-lan-echo-kuang-jia-fen-xi","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART01.Web框架概览"}]},{"id":"1k2A8kOus5npRdlELV8L","title":"PART02.Server","pathname":"/part02.server","siteSpaceId":"sitesp_Z16vz"},{"id":"W5avwgVR1GhfcUBftCMl","title":"2.01 Server详解与面试要点","pathname":"/part02.server/2.01-server-xiang-jie-yu-mian-shi-yao-dian","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART02.Server"}]},{"id":"wnWyCLvS3iL6hUPNfMtT","title":"PART03.路由树","pathname":"/part03.-lu-you-shu","siteSpaceId":"sitesp_Z16vz"},{"id":"QVJ9JrDf6LR797BgcXDm","title":"3.01 路由树-Beego&GIN&Echo实现与设计总结","pathname":"/part03.-lu-you-shu/3.01-lu-you-shu-beegoginecho-shi-xian-yu-she-ji-zong-jie","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART03.路由树"}]},{"id":"iTH7vUlqhsjrdAKy2iHT","title":"3.02 路由树-全静态匹配","pathname":"/part03.-lu-you-shu/3.02-lu-you-shu-quan-jing-tai-pi-pei","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART03.路由树"}]},{"id":"zShYusywEeOaUB4VGpSc","title":"3.03 路由树-TDD起步","pathname":"/part03.-lu-you-shu/3.03-lu-you-shu-tdd-qi-bu","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART03.路由树"}]},{"id":"HBcOWcvE5Aos8oH0YfZk","title":"3.04 路由树-静态匹配测试用例","pathname":"/part03.-lu-you-shu/3.04-lu-you-shu-jing-tai-pi-pei-ce-shi-yong-li","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART03.路由树"}]},{"id":"xya9i36bQlZbFfpZym2y","title":"3.05 路由树-静态匹配之路由查找","pathname":"/part03.-lu-you-shu/3.05-lu-you-shu-jing-tai-pi-pei-zhi-lu-you-cha-zhao","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART03.路由树"}]},{"id":"EJNPXm53t9rIM5oxqEJd","title":"3.06 路由树-静态匹配之集成Server","pathname":"/part03.-lu-you-shu/3.06-lu-you-shu-jing-tai-pi-pei-zhi-ji-cheng-server","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART03.路由树"}]},{"id":"5KCxGBKfVzK3HwthtIpA","title":"3.07 路由树-通配符匹配之路由注册","pathname":"/part03.-lu-you-shu/3.07-lu-you-shu-tong-pei-fu-pi-pei-zhi-lu-you-zhu-ce","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART03.路由树"}]},{"id":"k3HpOp7KMhgqXSN3wFwI","title":"3.08 路由树-通配符匹配之路由查找与测试","pathname":"/part03.-lu-you-shu/3.08-lu-you-shu-tong-pei-fu-pi-pei-zhi-lu-you-cha-zhao-yu-ce-shi","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART03.路由树"}]},{"id":"HWWOX5oA8e8tvq3N70JS","title":"3.09 路由树-参数路径之基本注册和查找","pathname":"/part03.-lu-you-shu/3.09-lu-you-shu-can-shu-lu-jing-zhi-ji-ben-zhu-ce-he-cha-zhao","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART03.路由树"}]},{"id":"Yh3etSao9UHDcYjbKx5k","title":"3.10 路由树-参数路径之校验","pathname":"/part03.-lu-you-shu/3.10-lu-you-shu-can-shu-lu-jing-zhi-jiao-yan","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART03.路由树"}]},{"id":"FLpPjck3sv9BKW9XbrvR","title":"3.11 路由树-参数路径之参数值","pathname":"/part03.-lu-you-shu/3.11-lu-you-shu-can-shu-lu-jing-zhi-can-shu-zhi","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART03.路由树"}]},{"id":"bysSkRUDU7xT33bmcqqA","title":"3.12 路由树-总结与面试要点","pathname":"/part03.-lu-you-shu/3.12-lu-you-shu-zong-jie-yu-mian-shi-yao-dian","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART03.路由树"}]},{"id":"6ZX5vLbgopQDGTMksfS8","title":"PART04.课后复习","pathname":"/part04.-ke-hou-fu-xi","siteSpaceId":"sitesp_Z16vz"},{"id":"4wQPZrBZMm6Lh6XZhW2c","title":"4.01 课后复习-Server","pathname":"/part04.-ke-hou-fu-xi/4.01-ke-hou-fu-xi-server","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART04.课后复习"}]},{"id":"Nvp0yQwJARa3ud8l0YoB","title":"4.02 课后复习-Route","pathname":"/part04.-ke-hou-fu-xi/4.02-ke-hou-fu-xi-route","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART04.课后复习"}]},{"id":"p7TF2tvrqduSZFtCsy1I","title":"PART05.Context","pathname":"/part05.context","siteSpaceId":"sitesp_Z16vz"},{"id":"Q3d0QMPaizOaaWnO2r9S","title":"5.01 Context-简介","pathname":"/part05.context/5.01-context-jian-jie","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART05.Context"}]},{"id":"OU8w92cQ5ISvQJwSFEdj","title":"5.02 Context-Beego Context设计分析","pathname":"/part05.context/5.02-contextbeegocontext-she-ji-fen-xi","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART05.Context"}]},{"id":"iA6GNtEuphihiKoz4kZQ","title":"5.03 Context-Gin Context设计分析","pathname":"/part05.context/5.03-contextgincontext-she-ji-fen-xi","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART05.Context"}]},{"id":"0FdW1WPbdEXc2LLWcVyY","title":"5.04 Context-Echo和Iris的Context设计分析","pathname":"/part05.context/5.04-contextecho-he-iris-de-context-she-ji-fen-xi","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART05.Context"}]},{"id":"tMRrWyZQzRMmWEnZ8epo","title":"5.05 Context-处理输入输出总结","pathname":"/part05.context/5.05-context-chu-li-shu-ru-shu-chu-zong-jie","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART05.Context"}]},{"id":"wonYN9zhAEqW4W11AEzV","title":"5.06 Context-处理输入之Body输入","pathname":"/part05.context/5.06-context-chu-li-shu-ru-zhi-body-shu-ru","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART05.Context"}]},{"id":"wA5dpWx88W7pnIdG4sKn","title":"5.07 Context-处理输入之表单输入","pathname":"/part05.context/5.07-context-chu-li-shu-ru-zhi-biao-dan-shu-ru","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART05.Context"}]},{"id":"CwX9tiR6C4bXGCIsxI2G","title":"5.08 Context-处理输入之查询参数、路径参数和StringValue","pathname":"/part05.context/5.08-context-chu-li-shu-ru-zhi-cha-xun-can-shu-lu-jing-can-shu-he-stringvalue","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART05.Context"}]},{"id":"iEhWEWcMRzaemoRdZ7Mw","title":"5.09 Context-处理输出","pathname":"/part05.context/5.09-context-chu-li-shu-chu","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART05.Context"}]},{"id":"sFLtVzc7w2vcglGoeURT","title":"5.10 Context-总结与面试要点","pathname":"/part05.context/5.10-context-zong-jie-yu-mian-shi-yao-dian","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART05.Context"}]},{"id":"AfG7mjmyD0oq3j66DoVx","title":"PART06.AOP","pathname":"/part06.aop","siteSpaceId":"sitesp_Z16vz"},{"id":"DRV8D376fxCk73XcplCt","title":"6.01 AOP简介与不同框架设计概览","pathname":"/part06.aop/6.01-aop-jian-jie-yu-bu-tong-kuang-jia-she-ji-gai-lan","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART06.AOP"}]},{"id":"bCB772IohjVgAGzdJ8KC","title":"6.02 AOP设计方案-Middleware","pathname":"/part06.aop/6.02-aop-she-ji-fang-an-middleware","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART06.AOP"}]},{"id":"SKAGu9cIhINbi4wiZRrD","title":"PART07.Middleware","pathname":"/part07.middleware","siteSpaceId":"sitesp_Z16vz"},{"id":"Ilyk1a5NNHBlfFXSVe5A","title":"7.01 Middleware-AccessLog","pathname":"/part07.middleware/7.01-middleware-accesslog","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART07.Middleware"}]},{"id":"ERezbZsO4TR6g9luGor9","title":"7.02 Middleware-Trace简介和OpenTelemetry","pathname":"/part07.middleware/7.02-middlewaretrace-jian-jie-he-opentelemetry","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART07.Middleware"}]},{"id":"JppPPZ8PzaSWvlF6dXm2","title":"7.03 Middleware-OpenTelemetry测试","pathname":"/part07.middleware/7.03-middlewareopentelemetry-ce-shi","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART07.Middleware"}]},{"id":"9MvvGocRysK4s3VUJJZ2","title":"7.04 Middleware-OpenTelemetry总结","pathname":"/part07.middleware/7.04-middlewareopentelemetry-zong-jie","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART07.Middleware"}]},{"id":"JfupKpETvxNKREVg62TK","title":"7.05 Prometheus详解","pathname":"/part07.middleware/7.05-prometheus-xiang-jie","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART07.Middleware"}]},{"id":"K1O5EXWv4KriPjo0e0G6","title":"7.06 Middleware-Prometheus","pathname":"/part07.middleware/7.06-middleware-prometheus","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART07.Middleware"}]},{"id":"DqDzxKVaR3WcPbzw0wOj","title":"7.07 Middleware-错误页面","pathname":"/part07.middleware/7.07-middleware-cuo-wu-ye-mian","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART07.Middleware"}]},{"id":"7EAcoNhatCIICrpKhKyk","title":"7.08 Middleware-从panic中恢复","pathname":"/part07.middleware/7.08-middleware-cong-panic-zhong-hui-fu","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART07.Middleware"}]},{"id":"xYXPWfHrmS5BgNemjRS5","title":"7.09 Middleware总结和面试","pathname":"/part07.middleware/7.09-middleware-zong-jie-he-mian-shi","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART07.Middleware"}]},{"id":"TWaI9EmBvPN9HSXfNEHH","title":"PART08.Review","pathname":"/part08.review","siteSpaceId":"sitesp_Z16vz"},{"id":"KCg4vyW5FIqYMbQjNS5X","title":"8.01 课后复习-AOP","pathname":"/part08.review/8.01-ke-hou-fu-xi-aop","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART08.Review"}]},{"id":"0QgS5kT0vwyQPF98LKHM","title":"8.02 课后复习-Context","pathname":"/part08.review/8.02-ke-hou-fu-xi-context","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART08.Review"}]},{"id":"YAe8PxH0C9EpZDNrddro","title":"8.03 课后复习-Middleware-AccessLog","pathname":"/part08.review/8.03-ke-hou-fu-xi-middlewareaccesslog","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART08.Review"}]},{"id":"LR2DBY8cx2SLUVHLDcrl","title":"PART09.Appendix","pathname":"/part09.appendix","siteSpaceId":"sitesp_Z16vz"},{"id":"UD1e4AJ8sWzr6ocFthZw","title":"附录1.责任链模式","pathname":"/part09.appendix/01-fu-lu-.-ze-ren-lian-mo-shi","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART09.Appendix"}]},{"id":"ABcADlPp2IvoTLgbsmey","title":"附录2.生成器模式","pathname":"/part09.appendix/02-fu-lu-.-sheng-cheng-qi-mo-shi","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART09.Appendix"}]},{"id":"JeEL7wcHvDqGCkCW5Bx8","title":"附录3.函数选项模式","pathname":"/part09.appendix/03-fu-lu-.-han-shu-xuan-xiang-mo-shi","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"PART09.Appendix"}]},{"id":"50tvDqzGYqmKIi3UXjFe","title":"xiaochengxu","pathname":"/xiaochengxu","siteSpaceId":"sitesp_Z16vz"},{"id":"7Z2CJTlQRusBEU4YHUCN","title":"01.原力去水印","pathname":"/xiaochengxu/01.qushuiyin","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"xiaochengxu"}]},{"id":"2ThT56O493XSZue3v9DD","title":"02.KeePass密码管理：安全轻松的管理您的密码","pathname":"/xiaochengxu/02.password","siteSpaceId":"sitesp_Z16vz","description":"","breadcrumbs":[{"label":"xiaochengxu"}]}]}