یکی از قابلیت های زبان گو این است که می توان با استفاده از کتابخانه http داخلی گو استفاده کرده و وب سرور پیاده سازی کرد.
برای پیاده سازی یک وب سرور حداقل به 3 چیز نیاز داریم: 1) مسیر 2) درگاه وب سرور 3) مقدار برگشتی
مسیر: عبارت است از URL منحصر به فرد برای ارسال و دریافت اطلاعات ورودی
درگاه وب سرور: هر وب سرور نیاز دارد که درگاه (Port) خاصی را در اختیار داشته باشد و همواره به آن درگاه گوش بسپارد.
مقدار برگشتی: هرگاه کاربر به مسیری وارد میشود یا اطلاعاتی را برای وب سرور ارسال میکند، مقداری از سمت سرور برای کاربر ارسال میشود.
یک نمونه وب سرور در گو
1package main
2
3import (
4 "fmt"
5 "net/http"
6)
7
8func main() {
9 // مسیر / یا root را برای این تابع انتخاب میکنیم (کد این تابع با صدا شدن مسیر localhost:3000 اجرا می شود)
10 http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) {
11 // مقدار hello world را در مسیر مشخص شده برمیگردانیم
12 _, err := fmt.Fprint(writer, "<h1>Hellow World!</h1>")
13 if err != nil {
14 return
15 }
16 })
17
18 fmt.Println("Starting The Server on :3000...")
19 // به درخواست های ارسال شده به پورت 3000 با پروتوکول http گوش میکنیم (سرور در انتظار درخواست از سمت کاربر یا client) می ماند
20 err := http.ListenAndServe(":3000", nil)
21 if err != nil {
22 return
23 }
24
25}
با وارد شدن به آدرس localhost:3000
مقدار برگشته شده در handleFunc
را مشاهده خواهید کرد.