Vebsaytların arxitekturası — Müştəri-server rabitəsi / CSR / SSR

Fidan Naghiyeva
Star Gazers
Published in
3 min readAug 29, 2021

Bundan öncəki məqaləmizdə vebsaytların arxitekturaları arasındakı fərqliliklərdən danışmışdıq. Verilən tələbləri — vebsaytın və ya tətbiqin məxfiliyi, sürəti, istifadəçi kütləsini və s. nəzərə alaraq vebsaytın bir, iki, üç və ya n-mərtəbəli arxitekturaya malik olmasını seçə bilirdik.

Gəlin, indi eyniliklərdən danışaq. Üzərində işlədiyimiz proyektin hansı arxitekturaya mənsub olmasından asılı olmayaraq, işləmə məntiqi eynidir. Sadəcə komponentlərin yerləşdiyi serverlər fərqlidir. Daha ətraflı məlumat üçün sizi buraya dəvət edək :)

Bildiyimiz kimi, istifadəçi interfeysi, işləmə məntiqi və verilənlər bazası kimi komponentlər vebsaytın arxitekturasını təşkil edir.

Bəs, bu 3 komponent arasındakı əlaqə necə baş verir?

Burada məqaləmizə müştəri-server rabitəsi (client-server architecture) termini daxil olur. Müştəri-server rabitəsi veb arxitekturasının əsasıdır. Məsələn, siz bir müştəri olaraq bu yazını oxumaq istədiniz və oxumağa davam edirsiniz. Çünki, bu səhifəni açaraq serverə sorğu göndərdiniz. Baxdığınız hər bir vebsayt (Twitter, Facebook və s. ) müştəri-server rabitəsi əsasında qurulmuşdur. İstisna olaraq, qeyd etmək lazımdır ki, bəzi biznes tətbiqləri və vebsaytları paralel rabitə arxitekturası (peer-to-peer architecture) əsasında qurulub. Paralel rabitə arxitekturası haqqında daha geniş danışacağıq.

Müştəri-server rabitəsindəki müştəri saytın istifadəçisidir. Yəni, istifadəçi interfeysindən istifadə edən tərəf də deyə bilərik — bu telefon, kompüter, planşet və s. ola bilər. Müştərinin gördüyü hissə saytın HTML, CSS, JavaScript kodları əsasında qurulmuş səhifələridir. (Ətraflı məlumat üçün buraya baxa bilərsiniz.)

Müştəriləri zəif və güclü olaraq 2 tipə ayırırıq (thin client, thick client). Güclü və zəif müştərilər arasındakı fərq ikimərtəbəli və üçmərtəbəli arxitekturalar arasındakı fərqlə eynidir.

Zəif müştərilər sadəcə istifadəçi interfeysinə cavabdehdirlər. Güclü müştərilər isə istifadəçi interfeysi ilə yanaşı işləmə məntiqini də özündə saxlayır.

İndi isə müştəri-server rabitəsindəki serveri araşdıraq. Çünki, veb arxitekturasının əsas missiyası müştəridən gələn sorğunu serverə ötürüb, bu sorğuya uyğun cavabı müştəriyə göndərməkdir. Deməli, istifadə etdiyimiz hər bir vebsaytın görmədiyimiz serveri mövcuddur. Bu serverlər, əsasən, “tətbiq serverləri” olaraq tanınır. Lakin, vebsaytların tələbindən asılı olaraq Proxy server, Mail server, File server və Virtual serverlər də mövcuddur.

Proxy server — Proxy serveri əsas müştəri və əsas server arasındakı server kimi başa düşə bilərik. Müştərinin əsas serverə göndərdiyi sorğunu qəbul edir və buna cavab vermir, əsas serverə göndərir. Bu şəkildə nə müştəri, nə də cavab verən serverin birbaşa bir-birinə bağlanması lazım olmur.

Mail server — geniş yayılmış serverlərdir, mail serverlər elektron poçtu qəbul edir və müştəri bu poçtu oxumağı tələb edənə qədər onu özündə saxlayır.

File server — faylları saxlamaq, təhlükəsizliklərini təmin etmək, daha sürətli oxumaq və yazmaq üçün qurulmuş serverlərdir. Qeyd edək ki, bu serverlərdə faylların ehtiyat nüsxələri də saxlanılır.

Virtual server — bu müştərinin istifadəsinə verilən maksimum hüquqlara malik server xidmətidir. Ənənəvi serverlərdən fərqli olaraq, virtual serverlər yalnız hipervizor adlanan xüsusi proqram təminatı daxilində mövcuddur. Hər bir hipervizor yüzlərlə, hətta minlərlə virtual server işlədə bilər.

Müştəri-server rabitəsindən danışırıqsa, CSR (Client-side rendering) SSR (Server-side rendering) terminlərinə də toxunmalıyıq.

Client-side rendering — Vebsaytın HTML, CSS, JavaScript kodları oxunduqdan sonra, istifadəçi səhifəni görə bilir. Bu da o deməkdir ki, kodların çox olduğu təqdirdə istifadəçi uzun müddət səhifəni görmək üçün gözləməlidir.

Müsbət tərəfləri:

İstifadəçi ilə sayt arasında güclü qarşılıqlı rabitə;

İlkin yüklənmədən sonra vebsaytın sürətli işləməsi.

Mənfi tərəfləri:

İlkin yüklənmə çox vaxt tələb edir;

Xarici JavaScript kitabxanası tələb olunur.

Server-side rendering — İstifadəçi vebsayta daxil olarkən JavaScript kodları oxunmasa belə, səhifənin vizual tərəfini görə bilir. CSR`dən fərqli olaraq, istifadəçi saytı görmək üçün uzun müddət gözləmir, saytın bütün funksionallıqlarından istifadə etmək üçün gözləyir, lakin vizual olaraq gördüyü üçün bunu hiss etmir.

Müsbət tərəfləri:

Axtarış optimizasiyası CSR`ə nisbətən daha yaxşıdır;

İlkin yüklənməsi çox sürətli olur.

Mənfi tərəfləri:

İstifadəçi ilə sayt arasında zəif rabitə;

Tez-tez göndərilən server sorğuları.

Server-side rendering və client-side rendering mövzularını HTTP sorğularını danışdıqdan sonra bir daha müzakirə edəcəyik.

Gələn məqalələrdə görüşənədək!..

--

--