2-Laboratoriya. APACHE, SERVERGO SERVERLARI BILAN ISHLASH
ISHNING MAQSADI: Talabalarning Apache, ServerGo serverlari bilan ishlash bo‘yicha ko‘nikma va malakalarini oshirish.
NAZARIY QISM:
Go-da veb-server yaratish juda tez va oson. Misol uchun:
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello World!")
}) http.ListenAndServe(":80", nil)
}
Shundan so‘ng, agar siz dasturni ishga tushirsangiz va localhost sahifasini ochsangiz, darhol "Salom, dunyo!" degan yozuvni ko‘rasiz. (albatta, agar hamma narsa to‘g'ri ishlayotgan bo‘lsa). Keyinchalik, qayta-qayta ishlov beruvchidan foydalanamiz, lekin avval hamma narsa qanday ishlashini tushunaylik. Misollardan ikkala server va HTTP mijozlarini rivojlantirish uchun Go vositasida asosiy vosita bo‘lgan net / http to‘plami ishlatilgan. Kodni tushunish uchun uchta muhim elementning ma'nosini ko‘rib chiqaylik:
http.Handler;
http.ServeMux;
http.Server.
Biz so‘rov olganimizda, ishlov beruvchi uni tahlil qiladi va javobni shakllantiradi. Ishlov berish vositalari quyidagicha amalga oshiriladi:
type Handler interface {
ServeHTTP(ResponseWriter, *Request)
}
Birinchi misol http.HandleFunc yordamchi funktsiyasidan foydalanadi. U boshqa funktsiyani o‘giradi, bu esa o‘z navbatida ServeHTTP-da http.ResponseWriter va http.Request-ni qabul qiladi.
Boshqacha qilib aytganda, Golang ishlov beruvchilari dasturchi uchun ko‘plab imkoniyatlarni taqdim etadigan bitta interfeys bilan namoyish etiladi. Shunday qilib, masalan, middleware ishlov berish vositasi yordamida amalga oshiriladi, bu erda birinchi navbatda ServeHTTP biror narsa qiladi, so‘ngra boshqa ishlov beruvchining ServeHTTP usulini chaqiradi.
So‘rovlarni marshrutlash. To‘g'ri tanlovni amalga oshirish uchun HTTP multiplexeridan foydalanish tavsiya etiladi. U bir qator kutubxonalarda muxer yoki router deb nomlanadi, ammo barchasi bir xil. Multiplekserning vazifasi so‘rov yo‘lini tahlil qilish va tegishli ishlov beruvchini tanlashdir.
Agar siz kompleks marshrutlashni qo‘llab-quvvatlashga muhtoj bo‘lsangiz, unda uchinchi tomon kutubxonalaridan foydalanish yaxshiroqdir. Eng zamonaviylaridan biri gorilla / mux va go-chi / chi bo‘lib, ushbu kutubxonalar hech qanday muammosiz ishlov berishni amalga oshirishga imkon beradi. Ularning yordami bilan siz wildcard marshrutlashni sozlashingiz va boshqa bir qator vazifalarni bajarishingiz mumkin.
Oddiy vaziyatda murakkab freymvorklar bilan ishlash juda oddiy, standart yechimlarni talab qilmaydi va bu standart ishlov beruvchilardan foydalanishni ancha qiyinlashtiradi. Ilovalarning aksariyatini yaratish uchun standart kutubxona va oddiy yo‘riqnoma kombinatsiyasi kifoya qiladi.
Topshiriqlar:
Apache serverrni internetdan (https://apache-http-server.ru.softonic.com/ )yuklab oling va denwerni o‘rnatganingiz kabi ishlarni bajaring.
ServerGo serverrni internetdan yuklab oling va denwerni o‘rnatganingiz kabi ishlarni bajaring.
Har bir qilgan ishingizni word dasturida tayyorlab telegram orqali jo‘nating.
Do'stlaringiz bilan baham: |