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()
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值