<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                Golang中http包中處理 HTTP 請求主要跟兩個東西相關:ServeMux 和 Handler。 ServeMux 本質上是一個 HTTP 請求路由器(或者叫多路復用器,Multiplexor)。它把收到的請求與一組預先定義的 URL 路徑列表做對比,然后在匹配到路徑的時候調用關聯的處理器(Handler)。 處理器(Handler)負責輸出HTTP響應的頭和正文。任何滿足了http.Handler接口的對象都可作為一個處理器。通俗的說,對象只要有個如下簽名的ServeHTTP方法即可: ~~~go ServeHTTP(http.ResponseWriter, *http.Request) ~~~ Go 語言的 HTTP 包自帶了幾個函數用作常用處理器,比如`FileServer`,`NotFoundHandler`和`RedirectHandler`。 應用示例: ~~~go package main import ( "log" "net/http" ) func main() { mux := http.NewServeMux() rh := http.RedirectHandler("http://www.baidu.com", 307) mux.Handle("/foo", rh) log.Println("Listening...") http.ListenAndServe(":3000", mux) } ~~~ 在這個應用示例中,首先在 main 函數中我們只用了`http.NewServeMux`函數來創建一個空的`ServeMux`。 然后我們使用`http.RedirectHandler`函數創建了一個新的處理器,這個處理器會對收到的所有請求,都執行307重定向操作到`http://www.baidu.com`。 接下來我們使用`ServeMux.Handle`函數將處理器注冊到新創建的`ServeMux`,所以它在 URL 路徑`/foo`上收到所有的請求都交給這個處理器。 最后我們創建了一個新的服務器,并通過`http.ListenAndServe`函數監聽所有進入的請求,通過傳遞剛才創建的`ServeMux`來為請求去匹配對應處理器。 在瀏覽器中訪問`http://localhost:3000/foo`,你應該能發現請求已經成功的重定向了。 此刻你應該能注意到一些有意思的事情:`ListenAndServer`的函數簽名是`ListenAndServe(addr string, handler Handler)`,但是第二個參數我們傳遞的是個`ServeMux`。 通過這個例子我們就可以知道,`net/http`包在編寫golang web應用中有很重要的作用,它主要提供了基于HTTP協議進行工作的client實現和server實現,可用于編寫HTTP服務端和客戶端。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看