<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 一、web工作流程 * Web服務器的工作原理可以簡單地歸納為 客戶機通過TCP/IP協議建立到服務器的TCP連接 客戶端向服務器發送HTTP協議請求包,請求服務器里的資源文檔 服務器向客戶機發送HTTP協議應答包,如果請求的資源包含有動態語言的內容,那么服務器會調用動態語言的解釋引擎負責處理“動態內容”,并將處理得到的數據返回給客戶端 客戶機與服務器斷開。由客戶端解釋HTML文檔,在客戶端屏幕上渲染圖形結果 ## 二、HTTP協議 * 超文本傳輸協議(HTTP,HyperText Transfer Protocol)是互聯網上應用最為廣泛的一種網絡協議,它詳細規定了瀏覽器和萬維網服務器之間互相通信的規則,通過因特網傳送萬維網文檔的數據傳送協議 * HTTP協議通常承載于TCP協議之上 ## 三、HTTP服務端 ~~~ package main import ( "net/http" "fmt" ) func main() { //第一個參數是匹配路徑 //第二個參數是響應事件 http.HandleFunc("/go", myHandler) //監聽 http.ListenAndServe("127.0.0.1:8000", nil) } //ResponseWriter, *Request //handle函數 func myHandler(w http.ResponseWriter, r *http.Request) { fmt.Println(r.RemoteAddr, "連接成功") fmt.Println("method=", r.Method) //url /go fmt.Println("url=", r.URL.Path) fmt.Println("header=", r.Header) fmt.Println("body =", r.Body) w.Write([]byte("夠浪")) } ~~~ ## 四、HTTP服務端 ~~~ package main import ( "net/http" "fmt" "io" ) func main() { resp, err := http.Get("http://127.0.0.1:8000/go") if err != nil { fmt.Println(err) return } fmt.Println(resp.Status) defer resp.Body.Close() fmt.Println("header=", resp.Header) //緩沖 buf := make([]byte, 1024) var tmp string for { //讀取服務端數據 n, err := resp.Body.Read(buf) if err != nil && err != io.EOF { fmt.Println(err) return } if n == 0 { fmt.Println("讀取內容完畢") break } //累加讀取的內容 tmp += string(buf[:n]) } fmt.Println("buf=", string(tmp)) } ~~~ 測試服務器和測試端的時候,先啟動服務端
                  <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>

                              哎呀哎呀视频在线观看