在Go中创建HTTP服务器

在本文中,我们将按照一些简单的步骤在Go中创建一个简单的HTTP服务器。 在开始之前,让我为您简要介绍一下Go。

什么是去?

Go是一种开放源代码编程语言,区分大小写,并且使用类似于Google在2007年创建的C语言的语法进行静态类型化。它可以快速编译,支持语言级别的并发,并提供垃圾回收,类型安全,动态键入功能,许多高级内置类型,例如可变长度数组和键值映射,尽管不支持通用编程,类型继承,方法或运算符重载,指针算术和断言。

现在,让我们开始设置环境以运行我们的第一个HTTP Server,具体步骤如下:

第1步:下载和提取围棋在任意目录,对我来说这golang下目录/用户/ ArpitAggarwal /如下:

$ mkdir golang
$ cd golang
$ wget https://storage.googleapis.com/golang/go1.8.3.darwin-amd64.tar.gz
$ tar -xvzf go1.8.3.darwin-amd64.tar.gz

步骤2:使用GOROOTGOPATHGOBIN更新路径 ,如下所示:

$ export GOROOT=/Users/ArpitAggarwal/golang/go
$ export GOPATH=$GOROOT/src
$ export GOBIN=$GOROOT/bin
$ export PATH=$PATH:$GOPATH:$GOBIN

GOROOT指向go安装目录。
GOPATH是指我们的go工作区目录或go 编译完成的位置。
GOBIN是指go生成可执行二进制文件的目录。

步骤3:执行以下命令,验证是否在Bash上正确设置了GOPATH

$ env | grep -E "^GO"

步骤4:在工作区中创建目录以保留源代码:

$ mkdir -p $GOPATH/github.com/arpitaggarwal

步骤5:移至上一步中创建的目录,并在其中创建一个名为webserver.go的文件,如下所示:

$ cd $GOPATH/github.com/arpitaggarwal
$ touch webserver.go

复制以下Go代码:

package main

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

func helloWorld(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintf(w, "Hello World!") // send data to client side
}

func main() {
	http.HandleFunc("/", helloWorld)         // set router
	err := http.ListenAndServe(":8080", nil) // set listen port
	if err != nil {
		log.Fatal("Error while starting GO http server on port - 8080 : ", err) //log error and exit in case of error at server boot up
	}
}

让我们了解每行的含义。

package main –它定义程序的程序包名称。

import(“ fmt”,“ log”“ net / http”) –是一个预处理程序命令,它告诉Go编译器包括fmtlognet / http包中的所有文件。

func helloWorld(w http.ResponseWriter,r * http.Request) –是一个go 函数

main() –是程序执行开始的主要功能。

步骤6:使用go工具安装webserver.go ,如下所示:

$ go install $GOPATH/github.com/arpitaggarwal/webserver.go

上面的命令编译webserver.go并在$ GOROOT / binGOBIN中生成可执行文件。

步骤7:运行将webserver移至golang目录,如下所示:

$ cd golang
$ ./go/bin/webserver

现在,在浏览器中打开http:// localhost:8080 /或执行命令:

curl http://localhost:8080

将向我们展示“ Hello World!” 作为回应。

步骤8:可以选择使用nohup命令在后台运行二进制文件,如下所示:

$ cd golang
$ nohup ./go/bin/webserver &;

完整的源代码托管在github上

翻译自: https://www.javacodegeeks.com/2017/07/creating-http-server-go.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值