WSGI və onun iş prinsipi

Jalə Mirzəyeva

13.09.2021

Web Server Gateway Interface (WSGI) — Veb serverlə veb tətbiqetmə arasında necə əlaqə qurulduğunu təsvir edən bir interfeys xüsusiyyətidir. Daha ətraflı şəkildə ifadə etsək WSGI server müştəridən sorğunu alır, tətbiqə ötürür və sonra tətbiq tərəfindən qaytarılmış cavabı müştəriyə göndərir. Bu prosesi təsəvvür etmək üçün aşağıdakı şəkilə nəzər yetirə bilərsiniz.

Şəkil (1) də göstərilən prosesi təsvir etsək, WSGI-in işləmə prinsipini tamamilə anlamış olarıq.Belə ki,

Web Server, browser’dən gələn request’i WSGI-ə, WSGI də framework’ə göndərir. Framework gelen request’ə verdiyi cavabı yenə eyni yol üzərindən WSGI’ə, WSGI ise Web Server’ə ve Web Server da browser’ə çatdırır. Və işləmə prosesi belə başa çatır.

                                                                . . .

WSGI — dən ilk istifadə:

1993-cü ildə, təxminən 14 milyon istifadəçisi və 100 veb saytı olan veb hələ başlanğıc mərhələsində idi.Səhifələr statik idi, lakin müasir xəbərlər və məlumatlar kimi dinamik saytlara ehtiyac var idi. Buna cavab olaraq Rob McCool və digərləri Common Gateway İnterface-i(CGI) National Center Supercomputing Applications (NCSA) HTTPd veb serverində tətbiq etdilər. Bu, ayrı bir tətbiq tərəfindən yaradılan məzmuna xidmət edə biləcək ilk veb server idi.

O vaxtdan bəri İnternetdə istifadəçi sayı artdı və dinamik veb saytlar hər yerdə yayılmağa başladı. İlk dəfə yeni bir dil öyrənəndə və ya ilk dəfə kod yazmağı öyrəndikdə, insanlar tezliklə kodlarını vebə necə bağlayacaqlarını bilmək istəyirlər.

CGI-nin yaradılmasından bəri çox şey dəyişdi ama CGI yanaşması praktik deyildi, çünki hər bir istəkdə yaddaş və CPU itirərək yeni bir prosesin yaradılması tələb olunurdu.Bu problemi həll etmək üçün 2003-cü ildə Phillip J. Eby PEP-0333 , Python Web Server Gateway Interface (WSGI) təklif etdi. Məqsəd Python tətbiqetmələri və veb serverləri arasında yüksək səviyyəli, universal bir interfeys təmin etmək idi.

Və demək olar ki,indiki dövrümüzdə bütün Python frameworkləri WSGI-dən veb serverlərlə ünsiyyət qurmaq üçün vasitə kimi istifadə edir. Django,Flask,Bottle və.s digər bir çox frameworklər bunlara misal ola bilər.

 Belə bir Flask nümunəsi yaza bilərik,

@app.route("/contact-us")
def contact_us():
    Return "How to contact us"

Yuxarıdakı kodlar çağırıla bilən obyektin WSGI üçün necə görünəcəyini göstərir. Bu URI üçün bir tələb edildikdə, veb-server bunu WSGI-yə ötürür və bu, URI-ni tətbiqdə müəyyən edilmiş bir route-la uyğunlaşdırır. Bu route-la əlaqəli kod daha sonra icra edilir.

                                                                 . . . 

WSGI-nin məqsədi:

WSGI sadəcə Python üçün keçərli bir interfeys xüsusiyyətidir. Başqa dillər üçün başqa serverlər mövcuddur lakin normlada Veb Serverlər Python’la yazılmış bir kodu anlamır. Bunun üçün də WSGI serverlərə ehtiyac duyurlar. WSGI — kodumuzu veb serverlərin anlıya biləcəyi hala çevirir. Məncə, WSGI-in əsas məqasədinin nə olduğunu burdan anlamış oluruq.

WSGI — dən istifadənin üstünlükləri:

WSGI-nin özünün bir sıra üstünlükləri mövcuddur,bunları öyrənmək üçün aşağıdakılara nəzər salaq:

1. Elastiklik(Flexibility):
WSGI-nin bizə rahatlıq qazandırdığı ən böyük üstünlüklərindən biridir. Kodları dəyişdirmədən və hətta WSGI serverləri ilə işləyən tətbiqetmələri dəyişdirmədən veb yığın komponentlərini dəyişə bilərik.

2. Ölçəkləmə qabiliyyəti(Scalability):
Frameworklər çox sayda istəyi idarə edə bilmir. Ancaq WSGI serverləri edə bilər və eyni zamanda minlərlə istəyi idarə edə və veb serverdən mümkün olan ən yaxşı vasitələrlə yönləndirə bilərlər.

3. Sürət(Speed):
WSGI, Python veb tətbiqetmə inkişafını sürətləndirməyə kömək edir, çünki hər hansı bir mürəkkəb şeyləri bilmək lazım deyil, sadəcə interfeysin necə işləməsi barədə əsas məlumatı bilmək lazımdır. CherryPy, Django və TurboGears vasitəsi ilə və ya hər hansı seçdiyin frameworklə WSGI standartını necə istifadə edəcəyini bilmək kifayətdir.

4. Sadə olması(Simple):
WSGI-nin öyrənmə metodu sadədir, götürməyi asanlaşdırır və heç bir konfiqurasiya və quraşdırma problemi yoxdur. Bu, WSGI-nin ən böyük faydalarından biridir.

5. Yenidən istifadə edilə bilən olması(Reusable Middleware):
WSGI-nin funksionallığını identifikasiya / avtorizasiya, sessiya materialları, keşləşdirmə, filtrləmə və s. kimi mövcud komponentləri vasitəsilə inkişaf etdirə bilərsiniz. Yenidən istifadə olunma xüsusiyyəti vaxt qazandırır.

                                                               . . . 

WSGI server tətbiqetmələri:

  • Gunicorn , Django proyektimizi HTTP-dən Python dilinə tərcümə edərək HTTP ilə əlaqəni təmin edən bir ara protokol proqramıdır.
  • uWSGI yüksək səviyyəli WSGI serveridir, hosting xidmətləri qurmaq üçün tam bir yığın inkişaf etdirməyi hədəfləyən bir proqram tətbiqidir .Web Server Gateway Interface layihəsi tərəfindən dəstəklənən ilk plugin olmuşdur
  • mod_wsgi , WSGI spesifikasiyasını tətbiq edən bir Apache moduludur.
  • CherryPy , WSGI server kimi fəaliyyət göstərən bir Python veb serveridir.

Ən çox oxunanlar

Logo

Logolar, bəlkə də bir markanın və ya şirkətin marketinq müvəffəqiyyəti üçün bir müştəri və ya işə götürənlə ilk görüş...

Farid Askerov

Ətraflı

22.04.2021

Web sayt

Bu gün bir şirkətin web sayta sahib olmağı bir dükana, ofisə və ya telefon nömrəsinə sahib olmaq qədər əhəmiyyətlidir. Tədqiqatlar nəticəsində öyənil...

Farid Askerov

Ətraflı

22.04.2021

Rebranding

Bəzən bəzilərinizin eşitmədiyi bir sözə rast gəlirik.
”Rebranding” Rebranding nədir? Necə edilir və bunun insanlarla, şirkətlərlə, firmalarlara nə ...

Səməd Abbasov

Ətraflı

22.04.2021

Bizimlə əlaqə

Sosial media


Xəritədən bax

Bakı şəhəri Heydər Əliyev prs. 115

Ofisə bax

Caspian Sport Plaza, 3-cü bina, 12-ci mərtəbə.