微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Web--Go语言学习笔记

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 举报,一经查实,本站将立刻删除。

相关推荐