Web–Go语言学习笔记
HTTP
Http:无状态协议,是互联网中使用Http实现计算机和计算机之间的请求与响应
- Http使用纯文本方式发送和接受协议数据,不需要专门工具进行分析就可以知道协议中数据
- 组成
- 请求头
- 请求行
- 请求体
- 响应头
- 响应体
模型
- B/S结构,客户端/服务器端,客户端运行在浏览器中
- C/S结构,客户端/服务器端,客户端是独立的软件
func HandFunc(pattern string,handler func(ResponseWriter,*Rwquest)){
//调用函数对应访问时输入的地址
}
func ListenAndServe(addr string,handler Handler)error{
Server:=&Server{Addr:addr,Handler:handler}
reutrn server.ListenAndServe()
}//监听访问地址
func welcome(res http.ResponseWriter,req *http.Request){
res.Header().Set("Content-Type","text/html;charset=utf-8")//实现go中的HTML代码可以被浏览器解析
fmt.Fprintln(res,"Hello World GoLang Web")
}
func main(){
http.HandleFunc("/",welcome)//浏览器打印Hello World GoLang Web
http.ListenAndServe("localhost:8090",nil)
fmt.Println("服务已启动")
}
单处理器-处理所有的地址的响应
type MyHander struct{
}
func (m *MyHander) ServeHTTP(w http.ResponseWriter,r *http.Request){
w.Write([]byte("返回的数据"))
}
func main(){
h:=MyHander{}
server:=http.Server{Addr:"localhost:8091",Handler: &h}
server.ListenAndServe()
}
多处理器-单一地址对应单一处理器
import "net/http"
type MyHander struct{
}
type MyHandle struct{
}
func (m *MyHander) ServeHTTP(w http.ResponseWriter,r *http.Request){
w.Write([]byte("Hander返回的数据"))
}
func (m *MyHandle) ServeHTTP(w http.ResponseWriter,r *http.Request){
w.Write([]byte("Handle返回的数据"))
}
func main(){
h:=MyHander{}
h1:=MyHandle{}
server:=http.Server{Addr:"localhost:8091"}
http.Handle("/first",&h)
http.Handle("/second",&h1)
server.ListenAndServe()
}
多处理函数
func first(w http.ResponseWriter, r*http.Request) {
fmt.Println(w, "多函数first")
}
func second(w http.ResponseWriter,r*http.Request){
fmt.Println("多函数second")
}
func main(){
sever:=http.Server{Addr:"localhost:8090"}
http.HandleFunc("/first",first)
http.HandleFunc("/second",second)
sever.ListenAndServe()
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。