一.开篇:
首先现在Web端大多数都是采用前后端分离,包括移动端更是不必多用说,网站弄个Vue或者Angular,后端使用Java或者Go或者是Nodejs或者Python等等
前端呢就是展示数据渲染出一个效果,可以理解为后端是盖楼,前端就是装修,对于用户来说,都是必要的二者也是密不可分,后端呢如果往白话来讲,就是数据的存取、计算、应对前端传过来的指令进行相应的存取、计算等作出回馈返还给前端。
后端最基本的构造是什么呢,首先后端服务就像一个饭店,里面都是服务员,时刻等待着接收指令,前端就是顾客,前端说,服务员给我注册个账号,服务员说马上到,卡卡几下就告诉顾客,先生您要注册的账号注册好了,吧啦吧啦...
二.翠花上酸菜 说点干货
最基本的web服务需要具备以下东西:
1.Router 也称路由,也可以说Url,网址,网站都行,反正就是前端请求数据通过它的地址来告诉后端要什么,然后后端处理返回结果
2.数据库,有些东西需要存起来,比如账号密码,需要服务端给存到服务器上,数据库有关系型数据库比如用mysql就像excel似的一行一列的,有key-value数据库就是像洗浴中心的更衣柜似的,几号(Key)柜子对应里面什么东西(value) ,还有诸如缓存redis这种也能关系型存东西也能key-value存东西的数据库而且这个是缓存数据库,特点就是存取都挺快的
3.函数以及方法,这个就是前端带着一些参数调用路由,然后路由去找处理这个请求的“人”,这个人可以是函数也可以是方法,函数就是独立的“人”,方法就是有“组织”的“人”,函数就是只要喊我就做,方法得是方法的对象就是组织里的人才能调用
三.不多逼逼,整点代码吧
package main
import (
"fmt"
"log"
"net/http"
"strings"
)
/*
入口----->
*/
func main() {
//我是调用函数的路由
http.HandleFunc("/", sayhelloName)//设置访问的路由
调用方法的路由
http.HandleFunc("/say", People{}.woyeSayhelloName)
//我一直盯着9090的端口看,谁打电话给9090,我就调用 sayHelloName函数
err :=http.ListenAndServe(":9090", nil)//设置监听的端口
if err !=nil {
log.Fatal("ListenAndServe: ", err)
}
}
//我是sayhelloName函数
func sayhelloName(w http.ResponseWriter, r *http.Request) {
r.ParseForm()//解析参数,默认是不会解析的
fmt.Println(r.Form)//这些信息是输出到服务器端的打印信息
fmt.Println("path", r.URL.Path)
fmt.Println("scheme", r.URL.Scheme)
fmt.Println(r.Form["url_long"])
for k, v :=range r.Form {
fmt.Println("key:", k)
fmt.Println("val:", strings.Join(v, ""))
}
fmt.Fprintf(w, "Hello World!")//这个写入到w的是输出到客户端的
}
//我是一个有方法的人
type People struct {
}
//我是人的一个方法
func (p People)woyeSayhelloName(w http.ResponseWriter, r *http.Request) {
r.ParseForm()//解析参数,默认是不会解析的
fmt.Println(r.Form)//这些信息是输出到服务器端的打印信息
fmt.Println("path", r.URL.Path)
fmt.Println("scheme", r.URL.Scheme)
fmt.Println(r.Form["url_long"])
for k, v :=range r.Form {
fmt.Println("key:", k)
fmt.Println("val:", strings.Join(v, ""))
}
fmt.Fprintf(w, "nice to meet you World!")//这个写入到w的是输出到客户端的
}
好了这样你就用Go语言实现了一个服务端,买个服务器,把这个代码在服务器运行以后,全球的人输入你的网址,就都能收到亲切的 helloworld还有nice to meet you了,是不是很简单
一起学习Go语言 ,一起变帅变有钱!
有疑问加站长微信联系(非本文作者)