IT აკადემია STEP! ჩვენ 1999 წლიდან ვსწავლობთ. მაღალი ხარისხის კომპიუტერულ განათლებას მოზრდილებში და ბავშვებში.

Your browser is out of date!

You are using an outdated browser Internet Explorer. This version of the browser does not support many modern technologies, that's why many pages of the website are not displayed correctly, and may not work some of functions . We recommend viewing the website using the latest versions of the browsers Google Chrome, Safari, Mozilla Firefox, Opera, Microsoft Edge

ШАГ логотип

ვებ-სოკეტების გამოყენება ვებ-აპლიკაციაში

27.05.2021

759 დათვალიერება

ტექნოლოგიები რეაქტიული სისწრაფით ვითარდება.პირველი სმარტფონის გაყიდვა სულ რაღაც 10 წლის წინ დაიწყო. ალბათ გახსოვთ ის ცნობილი Iphone 3G, რომელმაც რევოლუცია მოახდინა მსოფლიოში და რადიკალური ცვლილება შეიტანა მობილური ტელეფონის ინდუსტრიაში. საოცარია იმის ნახვა, რომ რამდენიმე წლის შემდეგ, უკვე არსებობდა განახლებული ვერსია, შემდეგ კიდევ ერთი უფრო მოკლე დროში, და სხვა ... უკვე იმ დონემდე მივედით, რომ ყოველწლიურად ჩნდება დიდი კომპანიების ახალი მოდელი, რომელიც არის უფრო სწრაფი, უფრო ძლიერი, უკეთესი ჩიპით და ა.შ.

 

თუ გავითვალისწინებთ, რომ ყველა დროსა და სივრცეში ჭკვიანი ტექნოლოგიების გამოყენება ჩვენს ცხოვრებაში სულ უფრო პრიორიტეტული ხდება, ადამიანის მოთხოვნაც იზრდება და სურთ, რომ აპლიკაციები რეაგირებდნენ უფრო სწრაფად და მორგბულად მასზე. სხვადასხვა სოციალურ ქსელში ჩატებით ან ონლაინ შოპინგით, მივაღწიეთ იმ წერტილს, რომ მომხმარებელი მოითხოვს დაუყოვნებლივ რეაგირებას.

 

მაგრამ როგორ შეიძლება ამ ურთიერთქმედების მიღწევა რეალურ დროში? აქ ვებ-სოკეტები შემოდის თამაშში .

 

რა არის ვებ-სოკეტები?

ვებ-სოკეტი არის W3C-ს (მსოფლიო ქსელის კონსორციუმი) მიერ შემუშავებული ტექნოლოგია, რომელიც იძლევა ორმხრივი კომუნიკაციის საშუალებას კლიენტსა და სერვერს შორის არხების უზრუნველყოფით ერთ TCP კავშირზე. ვებ-სოკეტი საშუალებას გვაძლევს დავითხოვოთ ძველი HTTP მოდელი, სახელად „პოლინგი“, რომელიც შედგებოდა HTTP მოთხოვნების გარკვეულ ინტერვალში გაგზავნით "დაუყოვნებლივი" პასუხის მისაღებად, და აღწევს ორ წერტილს შორის პირდაპირ კომუნიკაციას მუდმივი მოთხოვნების გაგზავნის გარეშე.

 

ვებ-სოკეტების გამოყენების მაგალითები

  • კედელი (Feed) სოციალურ ქსელებში
  • მრავალმოთამაშიანი თამაშები
  • ონლაინ დოკუმენტების ერთობლივი რედაქტირება
  • ჩატები
  • ადგილმდებარეობის აპლიკაციები

 

ყველა ამ შემთხვევაში საჭიროა მომხმარებლებსა და სერვერს შორის რეალურ დროში კომუნიკაცია. როგორ იქმნება ეს კომუნიკაცია?

 

კომუნიკაცია ვებ-სოკეტებით

მოცემული სურათი გვიჩვენებს კომუნიკაციის შექმნის პროცესს კლიენტსა და სერვერს შორის ვებსოკეტების გამოყენებით.

 

კომუნიკაციის დამყარების მიზნით, კლიენტი გზავნის ხელის ჩამორთვემვის თხოვნას სერვერთან. ეს მოთხოვნა შედგება HTTP მოთხოვნისაგან, შემდეგი სათაურებით.

  • “host: {url}”. მიუთითებს სერვერზე, სადაც გვინდა კომუნიკაციის დამყარება. 
  • “upgrade: websocket”. HTTP მოთხოვნის განახლების ველი საშუალებას გვაძლევს შევცვალოთ პროტოკოლი HTTP კავშირის დამყარების შემდეგ. ამ შემთხვევაში, ნაჩვენებია, რომ ჩვენ გვინდა გადავიდეთ ვებ-სოკეტის პროტოკოლზე.
  • “connection: upgrade”. ეს ველი მიუთითებს დასამყარებელი კავშირის ტიპზე. ჩვეულებრივ ხორციელდება "Keep-Alive" კავშირი, მაგრამ ამ შემთხვევაში, ვებ-სოკეტის პროტოკოლში ცვლილების შესატანად, ეს ველი უნდა შეიცავდეს კავშირის "განახლების" ტიპს.
  • “sec-websocket-key: {key}”. ეს სათაური გთავაზობთ გარკვეულ ინფორმაციას ვებ-სოკეტის სერვერიდან იმის გადასამოწმებლად, რომ ხელის ჩამორთმევის დროს მოხდა სწორი თხოვნის მიღება.

 

სერვერი იღებს და ამოწმებს ამ მოთხოვნას და რეაგირებს იმ პროტოკოლში ცვლილების განხორციელებით, რომელიც მითითებულია კლიენტის მოთხოვნაზე, ამით მყარდება ორმხრივი კომუნიკაცია კლიენტსა და სერვერს შორის.

 

სხვა რა სარგებელს ვიღებთ ამგვარი გამოყენებით?

ავიღოთ ძალიან მარტივი მაგალითი, სადაც ჩვენ გვაქვს სერვერი, რომელიც მდებარეობს A ქსელში, რომელსაც სჭირდება პირდაპირი მოთხოვნების გაკეთება კომპიუტერთან, რომელიც მდებარეობს B ქსელში.

თუ კომპიუტერს აქვს საჯარო IP მისამართი (იშვიათად ხდება), პაკეტის გაგზავნა შესაძლებელია პირდაპირ კომპიუტერში. თუმცა, მანამდე, თქვენ უნდა გაიაროთ ფაიერვოლი და B ქსელის როუტერი, რაც ნიშნავს, რომ B ქსელში უნდა დაუშვათ A ქსელიდან შემოსული პაკეტები.

 

როგორც წესი, კომპიუტერებს ენიჭებათ კერძო IP მისამართი, რომელიც მხოლოდ ქსელის შიგნითაა ხელმისაწვდომი. ეს ნიშნავს, რომ პაკეტი ვეღარ გაიგზავნება პირდაპირ კომპიუტერში და ის უნდა გაიგზავნოს საჯარო IP მისამართზე B ქსელში, ანუ ქსელის წვდომის წერტილში (ფაიერვოლი).

 

მას შემდეგ, რაც პაკეტი მიაღწევს B ქსელში შესვლის წერტილს, ის უნდა გაიგზავნოს დანიშნულების კომპიუტერში, ამიტომ შესვლის ამ ეტაპზე აუცილებელია რაიმე სახის მექანიზმის დამატება, რომელსაც პაკეტი გადაჰყავს დანიშნულების კომპიუტერში (NAT).

 

არ გვსურს აქ ბევრი დეტალის მოყვანა, თუმცა მოკლედ რომ ვთქვათ, ეს სისტემა არ იძლევა კარგ მასშტაბურობას ზემოთ განხილული მომსახურების ტიპისთვის.

 

ვებ-სოკეტებით კი ეს ყველაფერი დავიწყებადიც კია. როგორც უკვე ავხსენით, კავშირი არ ხდება სერვერიდან → კლიენტთან, არამედ კლიენტიდან → სერვერთან. ამ მაგალითში, ეს საშუალებას იძლევა, B ქსელის ჯგუფმა თავად გააკეთოს მოთხოვნა კომუნიკაციის შესაქმნელად პირდაპირ A ქსელის სერვერთან, წინა ნაწილში აღწერილი პროცესის შესაბამისად.

 

დაეუფლე პროფესიებს, როგორიც არის:  IT მხარდაჭერაინტერიერის დიზაინიბრენდ დიზაინი

 

შემოგვიერთდით სტეპერების დიდ ოჯახში! 

IT Academy Step ლიდერი IT სფეროში , ახლა უკვე 100+ ფილიალით!

+995 577 538 549 ქ.თელავი, ნადიკვრის #23

+995 (32) 215-55-51 ქ.თბილისი, ა.ყაზბეგის 34/34 ბ

https://www.facebook.com/itstep.ge



ავტორის სწავლების ტექნოლოგიები::

IT აკადემია STEP

Cloud ინჟინერი - ვინც აშენებს ციფრულ ქალაქებს ცაში

გაინტერესებთ, როგორ ახერხებენ ისეთი გიგანტები, როგორიცაა YouTube ან ონლაინ ბანკები, მილიონობით ადამიანის შეუფერხებელ მომსახურებას? Cloud ინჟინერია სწორედ ის პროფესიაა, რომელიც ციფრულ სამყაროს "ცაში" აშენებს. გაიგეთ, როგორ იქმნება მასშტაბური ინფრასტრუქტურა AWS-ისა და Kubernetes-ის დახმარებით და რატომ არის Cloud ინჟინერი თანამედროვე ტექნოლოგიური სამყაროს მთავარი არქიტექტორი, რომელიც სისტემების სტაბილურობასა და უსაფრთხოებას უზრუნველყოფს.

როცა YouTube-ს რთავთ, ფულს რიცხავთ ან ფოტოებს ინახავთ, ეს ყველაფერი ფიზიკურად თქვენს მოწყობილობაში არ არის. ის "ციფრულ ღრუბელშია" - კომპიუტერული ინფრასტრუქტურების უზარმაზარ ქსელში, რომელიც მიწაზე დგას, მაგრამ ვირტუალურ სივრცეში მუშაობს. ამ რთული სისტემის დაგეგმვა, აშენება და მართვა კი Cloud ინჟინერის საქმეა. რა არის Cloud და რატომ შეიცვალა სამყარო? წარსულში ყველა აპლიკაცია ერთ კონკრ

ШАГ логотип

შენ ქმნი სისტემას DevOps – ის, ვინც აკავშირებს კოდს რეალურ სამყაროსთან

გაიგე, როგორ იქცევა სტატიკური კოდი ცოცხალ ციფრულ პროდუქტად DevOps მეთოდოლოგიის დახმარებით. ეს მნიშვნელოვანი პროფესია თანამედროვე ტექნოლოგიების ხერხემალია, სადაც Docker-ის, Kubernetes-ისა და Cloud სისტემების მართვა უწყვეტ ფუნქციონირებას უზრუნველყოფს. აღმოაჩინე ის უნარები, რომლებიც დამწყებ სპეციალისტს საერთაშორისო ბაზარზე წარმატების მისაღწევად სჭირდება.

ხშირად გვგონია, რომ დეველოპერის მთავარი ამოცანა მხოლოდ კოდის დაწერაა, თუმცა რეალობაში ეს მხოლოდ დასაწყისია. იმისათვის, რომ პროგრამამ გამართულად იმუშაოს, განახლდეს შეფერხების გარეშე და რეალურ მომხმარებელზე სწორი ზემოქმედება მოახდინოს, საჭიროა სპეციალური მიდგომა. სწორედ აქ ჩნდება DevOps-ის როლი. ეს არის დეველოპმენტისა (Development) და ოპერაციების (Operations) ჰარმონიული სინთეზი - მეთოდოლოგი

ШАГ логотип

QA ტესტერი - ვინც დარწმუნებულია, რომ ყველაფერი მუშაობს ისე, როგორც უნდა მუშაობდეს

QA ტესტერი - პროგრამის უხილავი მცველი და ხარისხის მაკონტროლებელი. სანამ აპლიკაცია თქვენს ეკრანზე გამოჩნდება, მან რთული და საინტერესო შემოწმების გზა უნდა გაიაროს. გაეცანი QA ტესტერის პროფესიას: როგორ ეძებენ ისინი დამალულ შეცდომებს, რა როლს ასრულებენ დეველოპერულ გუნდში და რატომ არის ხარისხის კონტროლი გადამწყვეტი ნებისმიერი წარმატებული სისტემის შესაქმნელად.

QA ტესტერი - ადამიანი, რომელიც ხარისხზე აგებს პასუხს სანამ მომხმარებელი ვებგვერდს ეწვევა, ღილაკს დააჭერს ან აპლიკაციას გამოიყენებს, არსებობს ადამიანი, რომელმაც ეს ყველაფერი უკვე დეტალურად გადაამოწმა. ამ პროფესიას QA ტესტერი ჰქვია. აბრევიატურა QA (Quality Assurance) ხარისხის უზრუნველყოფას ნიშნავს და მისი მთავარი მიზანია, პროგრამა მუშაობდეს შეცდომების გარეშე, არ გაითიშოს და მომხმარებლი

ШАГ логотип

შენ ქმნი სისტემას მონაცემთა ბაზების სპეციალისტი ვინც ინახავს ყველაფერს, რაც ვებსივრცეში არსებობს

გაიგე, როგორ მუშაობს ციფრული სამყაროს მეხსიერება და რა როლს ასრულებს მონაცემთა ბაზების სპეციალისტი თანამედროვე ტექნოლოგიებში. სტატიაში მიმოხილულია ინფორმაციის შენახვისა და მართვის პრინციპები, SQL და NoSQL სისტემებს შორის განსხვავება და ის გზა, რომელსაც სტუდენტები IT აკადემია STEP-ში ამ მოთხოვნადი პროფესიის დასაუფლებლად გადიან.

ვინ ინახავს შენს პროფილს სოციალურ ქსელში, შენს ფოტოებს თუ კალათაში გადადებულ პროდუქტებს? ყველაფერი, რაც ვებსივრცეში „არსებობს“, სინამდვილეში კარგად ორგანიზებულ ციფრულ საცავებში - მონაცემთა ბაზებში ინახება. სწორედ ამ სისტემების შექმნაზე, განახლებასა და ოპტიმიზაციაზე მუშაობს მონაცემთა ბაზების სპეციალისტი, რომელიც ციფრული ინფორმაციის უსაფრთხოებასა და ხელმისაწვდომობას

ШАГ логотип

ამ საიტზე გამოიყენება Cookies

Კონფიდენციალურობის პოლიტიკა