HTTP 框架修炼之道| 青训营

73 阅读1分钟

HTTP 协议

  • HTTP 协议出现背景
  • HTTP 协议是什么
  • HTTP 协议有什么

尝试写一个 hello world 服务器

尝试用 gin 写一个 hello world 程序,达到以下效果

HTTP 框架中常见概念

  • 框架路由:根据请求的 URI 选择对应的处理函数。

    • 首先匹配 HTTP 方法

    • 静态路由: 精确匹配注册的路由,如:/a/b/c、/a/b/d

    • 参数路由:

      • 命名参数:形如 **:name**这类叫做命名参数,命名参数只匹配单个路径段:
      • sql
        复制代码
        Pattern: /user/:user
        
         /user/gordon              match(user = gordon)
         /user/you                 match(user = you)
         /user/gordon/profile      no match
         /user/                    no match
        
      • 通配参数:形如 ***action**这类叫做通配参数,就像名字所暗示的那样,它们匹配所有内容。因此,它们必须始终位于模式的末尾:
      • ini
        复制代码
        Pattern: /src/*filepath
        
         /src/                     match(filepath = "")
         /src/somefile.go          match(filepath = somefile.go)
         /src/subdir/somefile.go   match(filepath = subdie/somefile.go)
        
    • 路由修复: 如果只注册了 /a/b,但是访问的 URI 是 /a/b/,那可以提供自动重定向到 /a/b 能力;同样,如果只注册了 /a/b/,但是访问的 URI 是 /a/b,那可以提供自动重定向到 /a/b/ 能力

    • 冲突路由:同时注册 /a/b 和 /:id/b,并设定优先级。比如:当请求 URI 为 /a/b 时,优先匹配静态路由 /a/b

  • 什么是框架中间件,可参考 ginkratos

Golang

网络库

  • C10K Problem
  • Select,Poll,Epoll
  • Epoll ET、LT 区别

SIMD