Go语言内置的net/http
包十分的优秀,提供了HTTP客户端和服务端的实现。
net/http介绍
Go语言内置的net/http
包提供了HTTP客户端和服务端的实现。
HTTP协议
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
服务端
默认的Server
ListenAndServe使用指定的监听地址和处理器启动一个HTTP服务端。处理器参数通常是nil,这表示采用包变量DefaultServeMux作为处理器。
Handle和HandleFunc函数可以向DefaultServeMux添加处理器。
http.Handle("/foo", fooHandler)
http.HandleFunc("/bar", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, %q", html.EscapeString(r.URL.Path))
})
log.Fatal(http.ListenAndServe(":8080", nil))
默认的Server示例
使用Go语言中的net/http
包来编写一个简单的接收HTTP请求的Server端示例,net/http
包是对net包的进一步封装,专门用来处理HTTP协议的数据。具体的代码如下:
// http server
func sayHello(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Hello 沙河!")
}
func main() {
http.HandleFunc("/", sayHello)
err := http.ListenAndServe(":9090", nil)
if err != nil {
fmt.Printf("http server failed, err:%v\n", err)
return
}
}
将上面的代码编译之后执行,打开你电脑上的浏览器在地址栏输入127.0.0.1:9090
回车,此时就能够看到如下页面了。
注:可以将Hello 沙河!
改成在当前目录下创建其html文件,让浏览器渲染其html的页面。
package main
// http server
import (
"fmt"
"io/ioutil"
"net/http"
)
func f1(w http.ResponseWriter, r *http.Request) {
// Http_showPage.html 是在当前工作目录下编写好的html
b, err := ioutil.ReadFile("./Http_showPage.html")
if err != nil {
w.Write([]byte(fmt.Sprintf("%v\n", err)))
return
}
w.Write(b)
}
func main() {
//访问其目录时返回对应的函数实现 "响应"
http.HandleFunc("/Path1", f1)
//监听并服务 对应的IP地址
http.ListenAndServe("127.0.0.1:9000", nil)
}
听课笔记
HTTP
:超文本传输协议(HyperText Transfer Protocol) 作为一种协议让所有浏览器都遵循其对应的规则进行解析。
HTML
:是对应其HTTP
的规则制造,编程语言
CSS
:经过其HTML
编写的代码好比裸体的人,CSS
就是层叠样式,让其页面展示穿上衣服
JavaScript
:编写其在页面的一些鼠标点击对应的返回的事件,就好比让其穿上衣服的人动起来