یکی از قابلیت های زبان گو این است که می توان با استفاده از کتابخانه http داخلی گو استفاده کرده و وب سرور پیاده سازی کرد.
برای پیاده سازی یک وب سرور حداقل به 3 چیز نیاز داریم: 1) مسیر 2) درگاه وب سرور 3) مقدار برگشتی
مسیر: عبارت است از URL منحصر به فرد برای ارسال و دریافت اطلاعات ورودی
درگاه وب سرور: هر وب سرور نیاز دارد که درگاه (Port) خاصی را در اختیار داشته باشد و همواره به آن درگاه گوش بسپارد.
مقدار برگشتی: هرگاه کاربر به مسیری وارد میشود یا اطلاعاتی را برای وب سرور ارسال میکند، مقداری از سمت سرور برای کاربر ارسال میشود.
یک نمونه وب سرور در گو
package main
import (
"fmt"
"net/http"
)
func main() {
// مسیر / یا root را برای این تابع انتخاب میکنیم (کد این تابع با صدا شدن مسیر localhost:3000 اجرا می شود)
http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) {
// مقدار hello world را در مسیر مشخص شده برمیگردانیم
_, err := fmt.Fprint(writer, "Hellow World!
")
if err != nil {
return
}
})
fmt.Println("Starting The Server on :3000...")
// به درخواست های ارسال شده به پورت 3000 با پروتوکول http گوش میکنیم (سرور در انتظار درخواست از سمت کاربر یا client) می ماند
err := http.ListenAndServe(":3000", nil)
if err != nil {
return
}
}
با وارد شدن به آدرس localhost:3000
مقدار برگشته شده در handleFunc
را مشاهده خواهید کرد.