使用GO语言搭建HTTP服务器

使用GO语言搭建一个HTTP服务器

HTTP协议简介

http协议中文翻译为——“超文本传输协议”,它位于TCP/IP模型当中的应用层。HTTP通过一系列的键值对的形式来描述相关的请求和响应信息。请求消息是浏览器向服务器发送请求时的消息,响应消息则是请求消息发送之后服务器给予的反馈。如果感兴趣可自行查阅,就不过多赘述。

HTTP服务器搭建

在我们了解HTTP协议之后,就可以使用TCP协议来实现一个HTTP服务器。我们只需HTTP协议来解析请求消息和反回响应消息。GO语言官方也给予了相应的API,我们可以直接使用。

引包

go // 可自动引入 import "net/http"

HandleFunc设置路由

使用HandleFunc函数设置服务器路由,让服务器按照规则去处理浏览器发出的不同请求 go //pattern:路由的路径和规则 //handler:路由处理函数 func HandleFunc(pattern string, handler func(ResponseWriter, *Request)) { DefaultServeMux.HandleFunc(pattern, handler) } 举个例子:

我们写一个设置感谢掘金的路由规则 ```go

http.HandleFunc("/ThankJueJin",thankJueJin)

//Write为一个接口,http.ResponseWriter实现了这个接口的所有方法。 func thankJueJin(w http.ResponseWriter,req *http.Request) { io.WriteString(w,"感谢掘金") }

```

ListenAndServe启动

使用ListenAndServe函数启动一个HTTP服务器,它同时绑定了IP和端口、启动侦听、提供HTTP服务的作用。 go // addr为服务器地址,handler为服务器提供的函数指针(常用nil) func ListenAndServe(addr string, handler Handler) error { server := &Server{Addr: addr, Handler: handler} return server.ListenAndServe() } 举个例子: go 服务器地址为本地8080 err :=http.ListenAndServe("8080",nil) if err !=nil{ log.Fatal("ListenAnd---",err)} 我们看一下完整代码: ``` package main

import ( "io" "log" "net/http" )

func thankJueJin(w http.ResponseWriter,req *http.Request) { io.WriteString(w,"感谢掘金") } func main() {

http.HandleFunc("/ThankJueJin",thankJueJin) err:=http.ListenAndServe(":8080",nil) if err != nil{ log.Fatal("ListenAnd---",err)} } } ``` 效果图:

image.png

本文正在参加技术专题18期-聊聊Go语言框架

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值