---
title: A simple web server in Go
localeTitle: خادم الويب بسيط في الذهاب
---
تشتهر لغة برمجة Go بوجود خادم ويب مضمن. في هذه المقالة سوف تتعلم كيف يمكنك بسهولة إنشاء خادم الويب الخاص بك مع Go. لن تحتاج إلى أي حزم أخرى بجانب تلك التي بنيت بالفعل!

أولاً ، ادخل إلى محرر النص. ثم قم بإنشاء ملف يسمى `webserver.go` وأدخل الكود التالي:

 `package main 
 
 import ( 
  "net/http" 
  "io" 
 ) 
 
 func main() { 
  http.HandleFunc("/", servePage) 
    http.ListenAndServe(":8080", nil) 
 } 
 
 func servePage(writer http.ResponseWriter, reqest *http.Request) { 
  io.WriteString(writer, "Hello world!") 
 } 
` 

دعونا كسر كتلة الكود أعلاه. نستورد حزمة `net/http` : تحتوي هذه الحزمة على خادم الويب نفسه. ثم نستورد أيضًا حزمة `io` ، سنستخدم هذا لاحقًا لتقديم شيء ما للعميل.

في الوظيفة `main` نقوم بعمل شيئين. بادئ ذي بدء ، نطلب من الخادم أن يسمح للوظيفة التي تسمى `servePage` بالتعامل مع كل حركة المرور الواردة إلى `/` - في هذه الحالة ، تعني أنها تتعامل مع الطلبات إلى _أي_ `URL` . الشيء الثاني الذي نقوم به هو تفعيل الخادم. نقوم بذلك باستخدام دالة تسمى `ListenAndServe` . تتطلب هذه الوظيفة معلمتين: `port` ( `string` ) ، وفي هذه الحالة يكون `8080` ، `handler` ( `Handler` ) - ومع ذلك فإن الأخير ليس مهمًا حتى الآن. سنجعل فقط `nil` ، وسوف يعمل كل شيء على ما يرام.

في صفحة `servePage` نقوم بعمل شيء واحد بسيط ، في الوقت الحالي. باستخدام حزمة `io` ووظيفة `WriteString` التي تحتوي عليها ، يمكننا الاستجابة لطلب العملاء بنص `Hello world!` (أو أي سلسلة أخرى ، بالطبع). ربما كنت قد لاحظت أيضا أن الدالة `servePage` لها `servePage` : `writer` `request` . مع الكاتب يمكنك في الواقع الاستجابة لطلب `HTTP` ومع `request` قد تحصل على مزيد من المعلومات حول الطلب نفسه.

تهانينا! لقد أنشأت خادم الويب الأول! إذا كنت ترغب في اختباره: فقط قم بتشغيل `go run webserver.go` ، `go run webserver.go` متصفحًا وانتقل إلى `http://localhost:8080` !