Go简单的网站开发
1.簡單的示例程序
? ?我們引入了Go語言標準庫中的 net/http 包,主要用于提供Web服務,響應并處理客戶端(瀏覽器)的HTTP請求。同時,使用io包而不是fmt包來輸出字符串,這樣源文件編譯成可執行文件后,體積要小很多,運行起來也更省資源。
?
2.net/http包簡介
? ? 可以看到,我們在main()方法中調用了http.HandleFunc(),該方法用于分發請求,即針對某一路徑請求將其映射到指定的業務邏輯處理方法中。在hello.go中, http.HandleFunc()方法接受兩個參數,第一個參數是HTTP請求的目標路徑"/hello",該參數值可以是字符串,也可以是字符串形式的正則表達式,第二個參數指定具體的回調方法,比如helloHandler。當我們的程序運行起來后,訪問http://localhost:8080/hello ,程序就會去調用helloHandler()方法中的業務邏輯程序。
? ? 在上述例子中,helloHandler()方法是 http.HandlerFunc類型的實例,并傳入http.ResponseWriter和http.Request作為其必要的兩個參數。 http.ResponseWriter 類型的對象用于包裝處理HTTP服務端的響應信息。我們將字符串"Hello, world! "寫入類型為http.ResponseWriter的w實例中,即可將該字符串數據發送到HTTP客戶端。第二個參數r *http.Request表示的是此次HTTP請求的一個數據結構體,即代表一個客戶端,不過該示例中我們尚未用到它。
? ? 我們還看到,在main()方法中調用了http.ListenAndServe(),該方法用于在示例中監聽 8080 端口,接受并調用內部程序來處理連接到此端口的請求。如果端口監聽失敗,會調用log.Fatal()方法輸出異常出錯信息。
?
? ? 正如你所見, main()方法中的短短兩行即開啟了一個HTTP服務,使用Go語言的net/http包搭建一個Web是如此簡單!當然net/http包的作用遠不止這些,我們只用到其功能的一小部分。
試著編譯并運行當前的這份 hello.go 源文件:
? ?$ go run hello.go
?
? ?然后訪問 http://localhost:8080/hello,看會發生什么。
?
參考:
https://www.yuque.com/docs/share/b0697720-32e6-44a1-b631-25ef9dc07fe3
?
總結
- 上一篇: 【关于飞鱼】
- 下一篇: 生产者和消费者模型介绍