فصل 9.1.
ساختار http.Server (The http.Server Struct)
در این بخش، نحوه استفاده از ساختار http.Server (http.Server Struct) برای پیکربندی سرور (Server Configuration) را بررسی میکنیم. این ساختار امکان تنظیم پارامترها (Parameter Settings) و رفتار سرور (Server Behavior) را فراهم میکند.
برای شروع، بیایید تنظیمات پایه (Basic Settings) سرور را در کد اصلی (Main Code) خود اضافه کنیم:
package main ... func main() { addr := flag.String("addr", ":4000", "HTTP network address") dsn := flag.String("dsn", "web:pass@/snippetbox?parseTime=true", "MySQL data source name") flag.Parse() logger := slog.New(slog.NewTextHandler(os.Stdout, nil)) db, err := openDB(*dsn) if err != nil { logger.Error(err.Error()) os.Exit(1) } defer db.Close() templateCache, err := newTemplateCache() if err != nil { logger.Error(err.Error()) os.Exit(1) } formDecoder := form.NewDecoder() sessionManager := scs.New() sessionManager.Store = mysqlstore.New(db) sessionManager.Lifetime = 12 * time.Hour app := &application{ logger: logger, snippets: &models.SnippetModel{DB: db}, templateCache: templateCache, formDecoder: formDecoder, sessionManager: sessionManager, } // Initialize a new http.Server struct. We set the Addr and Handler fields so // that the server uses the same network address and routes as before. srv := &http.Server{ Addr: *addr, Handler: app.routes(), } logger.Info("starting server", "addr", srv.Addr) // Call the ListenAndServe() method on our new http.Server struct to start // the server. err = srv.ListenAndServe() logger.Error(err.Error()) os.Exit(1) } ...
این یک تغییر کوچک است که هنوز بر رفتار برنامه ما تأثیر نمیگذارد، اما ما را به خوبی برای کارهای آینده آماده میکند.
واژهنامه اصطلاحات فنی
| اصطلاح فارسی | معادل انگلیسی | توضیح |
|---|---|---|
| ساختار http.Server | http.Server Struct | ساختار داده برای پیکربندی سرور |
| پیکربندی سرور | Server Configuration | تنظیمات و پارامترهای سرور |
| تنظیم پارامترها | Parameter Settings | تعیین مقادیر پارامترهای سرور |
| رفتار سرور | Server Behavior | نحوه عملکرد سرور |
| تنظیمات پایه | Basic Settings | پیکربندیهای اولیه و ضروری |
| کد اصلی | Main Code | کد اصلی برنامه |
| آدرس شبکه | Network Address | آدرس و پورت سرور |
| مسیریاب | Router | مدیریت مسیرهای درخواست |
| زمانسنج | Timer | محدودیتهای زمانی |
| گزارشدهی خطا | Error Reporting | ثبت و نمایش خطاها |