Codecourse

HTTP protokolu

Redaktə edilib:

HTTP — bu, müxtəlif resursları (məsələn, HTML sənədləri) əldə etməyə imkan verən protokoldur. HTTP protokolu internetdə məlumat mübadiləsinin əsasını təşkil edir. HTTP kliyent-server protokoldur, bu isə sorğuların istifadəçi (adətən veb brauzer) tərəfindən göndərildiyi anlamına gəlir. Yekun sənəd müxtəlif alt sənədlərdən formalaşdırılır: məsələn, mətn, sənədin strukturunun təsviri, şəkil, video fayllar, skriptlər və sairə.

Kliyent və serverlər tək-tək mesajlarla (məlumat axını ilə deyil) mübadilə edərək qarşılıqlı əlaqə qururlar. Kliyent (adətən veb brauzer) tərəfindən göndərilən mesajlar sorğu, server tərəfindən göndərilən mesajlar isə cavab adlanır.

1990-cı illərin əvvəllərində işlənib hazırlanmış HTTP genişlənə bilən protokoldur, buna görə daima təkmilləşdirilib. HTTP tətbiqi səviyyəli protokoldur, öz mesajlarını göndərmək üçün çox vaxt digər protokolun - TCP-nin (yaxud TLS - təhlükəsiz TCP) imkanlarından istifadə edir, lakin bu mesajları ünvana çatdırmaq üçün nəzəri cəhətdən hər hansı digər etibarlı nəqliyyat protokolu da istifadə edilə bilər. Sözügedən protokol genişlənə bilən olduğuna görə o, yalnız kliyent tərəfindən hipermətn sənədləri, şəkillər və videoların əldə edilməsində deyil, həm də məzmunun serverlərə ötürülməsində (məsələn, HTML formaların köməyi ilə) istifadə olunur. HTTP, həmçinin sorğu üzrə veb səhifəni yeniləmək (məsələn, AJAX sorğu ilə) məqsədilə yalnız sənədin bir hissəsini əldə etmək üçün istifadə edilə bilər.

HTTP əsaslı sistemlərin komponentləri

HTTP kliyent-server protokoludur, yəni sorğular mübadilə iştirakçısı (user-agent), yaxud onun adından proksi tərəfindən göndərilir. Çox vaxt iştirakçı - bu, veb brauzerdir, lakin bu, məsələn, axtarış mühərrikləri üçün veb səhifələrin indeks məlumatlarının yenilənməsi və doldurulması məqsədilə interneti skan edən robot da ola bilər.

Hər bir sorğu (ingiliscə request) onu emal edən və cavab (ingiliscə response) qaytaran serverə göndərilir. Bu sorğu və cavablar arasında, bir qayda olaraq, müxtəlif əməliyyatları həyata keçirən (məsələn şlüz və ya keş) və proksi adlandırılan çoxlu sayda vasitəçi var.

Əslində brauzer və veb server arasında sorğunun emal edilməsində hansısa rol oynayan daha çox müxtəlif vasitəçi qurğular var: marşrutlaşdırıcı, modem və sairə. Şəbəkə qarşılıqlı əlaqə səviyyələri sistemi əsasında qurulduğundan bu vasitəçilər şəbəkə və nəqliyyat səviyyələrində "gizlədiliblər". Bu səviyyələr sistemində HTTP ən yüksək səviyyədədir.

Kliyent: mübadilə iştirakçısı

Mübadilə iştirakçısı (user-agent) - istifadəçinin adından hərəkət edən istənilən alət və ya cihazdır. Bu, əsasən veb brauzer tərəfindən yerinə yetirilir; bəzi hallarda iştirakçı rolunda mühəndis və veb tərtibatçılar tərəfindən öz tətbiqlərini sazlamaq üçün istifadə olunan proqramlar çıxış edir.

Brauzer - həmişə sorğu yaradan obyektdir. Server adətən bunu etmir, lakin şəbəkənin mövcud olduğu uzun illər ərzində server tərəfindən sorğuların yerinə yetirilməsinə imkan verən üsullar da hazırlanmışdır.

Veb səhifəni göstərmək üçün brauzer həmin səhifənin HTML sənədini əldə etməkdən ötrü başlanğıc sorğu göndərir. Bundan sonra brauzer bu sənədi təhlil edir və veb səhifənin məzmununu göstərmək üçün əlavə fayllara (icra olunan skriptlər, CSS stil cədvəlləri, şəkil və video fayllar şəklində əlavə mənbələr) görə sorğu göndərir. Daha sonra brauzer istifadəçiyə veb səhifəni göstərmək üçün bütün bu mənbələri birləşdirir.

Veb səhifə hipermətn sənəddir. Bu o deməkdir ki, ekrana çıxarılmış mətnin bəzi hissələri istinaddır. Yeni bir veb səhifənin əldə edilməsi və göstərilməsi üçün bu istinadlar aktivləşdirilə bilər (adətən maus ilə). Bu, istifadəçiyə internetdə səhifələr üzrə "gəzmək" imkanı yaradır. Brauzer bu istinadları HTTP sorğularına çevirir və daha sonra qəbul edilmiş HTTP cavablarını istifadəçiyə aydın olan şəkildə göstərir.

Veb-server

Rabitə kanalının digər tərəfində istifadəçinin sorğusu üzrə ona sənədlər təqdim edən server yerləşir. İstifadəçi nöqteyi-nəzərindən, server vahid virtual maşındır, amma o, yükü balanslaşdıran serverlər qrupu və ya digər kompüterləri (məsələn, keş edən serverləri, verilənlər bazası serverləri, elektron ticarət tətbiqi serverləri və sairə) sorğulayan mürəkkəb proqram təminatı da ola bilər.

Server mütləq eyni kompüterdə yerləşmir, yaxud bir neçə server eyni kompüterdə yerləşdirilə bilər. HTTP/1.1 versiyası və Host başlığı ilə serverlər eyni IP ünvanını istifadə edə bilərlər.

Proksi

Veb brauzer və server arasında HTTP mesajlarını ötürən çoxlu sayda şəbəkə qovşaqları mövcuddur. Çox səviyyəli struktura görə, onların əksəriyyəti, həmçinin nəqliyyat şəbəkəsində və ya fiziki səviyyələrdə işləyir, HTTP səviyyəsində şəffaf olur və məhsuldarlığı aşağı düşür. Tətbiqi səviyyədə olan bu əməliyyatlara proksi deyilir. Proksilər şəffaf (bu halda qəbul etdikləri sorğulara dəyişiklik etmədən yönləndirirlər), yaxud qeyri-şəffaf (bu halda proksilər sorğuların serverə ötürülməsindən öncə onlara hansısa bir üsulla dəyişiklik edirlər) ola bilərlər. Proksilər bir çox funksiyalar yerinə yetirə bilərlər:

HTTP protokolunun əsas aspektləri

HTTP sadədir

HTTP mesajlar insanlar tərəfindən oxunula və başa düşülə bilər ki, bu da tərtibatçılar üçün yoxlamanı asanlaşdırır və yeni başlayanlar üçün çətinliyi azaldır.

HTTP genişlənə biləndir

HTTP/1.0-də tətbiq edilmiş HTTP başlıqlar bu protokolu asanlıqla genişləndirməyə və onun üzərində təcrübələr aparmağa imkan verir. Yeni funksionallıq, hətta kliyent və server arasında yeni başlığın semantikası haqqında sadə razılaşma əsasında tətbiq edilə bilər.

HTTP cari vəziyyəti göstərə bilmir, amma sessiyaya malikdir

Eyni bağlantı üzrə ardıcıl yerinə yetirilən iki sorğu arasında əlaqə yoxdur. Bu, müəyyən səhifə (məsələn, elektron mağazada səbətdən istifadə) ilə ardıcıl əlaqə qurmağa çalışan istifadəçi üçün problemə çevrilə bilər. HTTP-nin nüvəsi cari vəziyyəti göstərə bilməsə də, HTTP kuki fayllar cari vəziyyəti yadda saxlayan sessiyalardan istifadəyə imkan verir. Başlıqların genişlənmə xüsusiyyətindən istifadə edərək iş axınına əlavə edilən HTTP kukilər sessiyaya hər bir HTTP sorğuda müəyyən vəziyyət və ya kontekstlə paylaşmağa imkan verir.

Şərhlər: