ჰიპერტექსტის გადაცემის პროტოკოლი უზრუნველყოფს ქსელის პროტოკოლის სტანდარტს, რომელსაც ვებ ბრაუზერები და სერვერები იყენებენ კომუნიკაციისთვის. თქვენ ხედავთ HTTP-ს, როდესაც ეწვევით ვებსაიტს, რადგან პროტოკოლი გამოჩნდება URL-ში (მაგალითად, ეს პროტოკოლი მსგავსია სხვათა, როგორიცაა ფაილის გადაცემის პროტოკოლი, რადგან მას იყენებს კლიენტის პროგრამა დისტანციური სერვერიდან ფაილების გამოსათხოვად. HTTP-ის შემთხვევაში, ვებ ბრაუზერი ითხოვს HTML ფაილებს ვებ სერვერიდან, რომლებიც შემდეგ გამოჩნდება ბრაუზერში ტექსტით, სურათებით, ჰიპერბმულებით და დაკავშირებული აქტივებით.
რადგან ბრაუზერები ურთიერთობენ HTTP-ის გამოყენებით, ჩვეულებრივ შეგიძლიათ პროტოკოლის ამოღება URL-დან, როდესაც მას ბრაუზერის მისამართის ზოლში აკრეფთ.
HTTP-ის ისტორია
ტიმ ბერნერს-ლიმ შექმნა საწყისი HTTP სტანდარტი 1990-იანი წლების დასაწყისში, როგორც მისი მუშაობის ნაწილი ორიგინალური მსოფლიო ქსელის განსაზღვრაში. 1990-იან წლებში გამოიყენეს სამი ძირითადი ვერსია:
- HTTP 0.9: ძირითადი ჰიპერტექსტური დოკუმენტების მხარდაჭერა.
- HTTP 1.0: გაფართოებები მდიდარი ვებსაიტების მხარდასაჭერად.
- HTTP 1.1: შექმნილია HTTP 1.0-ის შესრულების შეზღუდვების მოსაგვარებლად, მითითებული ინტერნეტ RFC 2068-ში.
უახლესი ვერსია, HTTP 2.0, გახდა დამტკიცებული სტანდარტი 2015 წელს. ის ინარჩუნებს ჩამორჩენილ თავსებადობას HTTP 1.1-თან, მაგრამ გთავაზობთ მუშაობის დამატებით გაუმჯობესებას.
მიუხედავად იმისა, რომ სტანდარტული HTTP არ შიფრავს ქსელში გაგზავნილ ტრაფიკს, HTTPS სტანდარტი ამატებს დაშიფვრას HTTP-ს Secure Sockets Layer-ის ან მოგვიანებით სატრანსპორტო ფენის უსაფრთხოების გამოყენებით.
როგორ მუშაობს
HTTP არის აპლიკაციის ფენის პროტოკოლი, რომელიც აგებულია TCP-ზე, რომელიც იყენებს კლიენტ-სერვერის კომუნიკაციის მოდელს. HTTP კლიენტები და სერვერები ურთიერთობენ მოთხოვნისა და პასუხების შეტყობინებების საშუალებით. HTTP შეტყობინების სამი ძირითადი ტიპია GET, POST და HEAD.
- HTTP GET: სერვერზე გაგზავნილი შეტყობინებები შეიცავს მხოლოდ URL-ს. ნულოვანი ან მეტი სურვილისამებრ მონაცემთა პარამეტრი შეიძლება დაერთოს URL-ის ბოლოს. სერვერი ამუშავებს URL-ის არასავალდებულო მონაცემთა ნაწილს, თუ ეს არის, და აბრუნებს შედეგს (ვებ გვერდი ან ვებ გვერდის ელემენტი) ბრაუზერში.
- HTTP POST: შეტყობინებები ათავსებს ნებისმიერ არჩევით მონაცემებს მოთხოვნის შეტყობინების ტექსტში, ვიდრე დაამატებს მათ URL-ის ბოლოს.
- HTTP HEAD: მოთხოვნები მუშაობს ისევე, როგორც GET მოთხოვნები. URL-ის სრული შიგთავსით პასუხის ნაცვლად, სერვერი აგზავნის მხოლოდ სათაურის ინფორმაციას (რომელიც შეიცავს HTML განყოფილებას).
ბრაუზერი იწყებს კომუნიკაციას HTTP სერვერთან სერვერთან TCP კავშირის ინიცირებით. ვებ-დათვალიერების სესიები ნაგულისხმევად იყენებს სერვერის პორტს 80, თუმცა სხვა პორტები, როგორიცაა 8080, ზოგჯერ გამოიყენება.
სესიის დამყარების შემდეგ, თქვენ იწყებთ HTTP შეტყობინებების გაგზავნას და მიღებას ვებ გვერდის მონახულებით.
HTTP არის ის, რასაც ეძახიან მოქალაქეობის არმქონე სისტემას. ეს ნიშნავს, რომ ფაილის გადაცემის სხვა პროტოკოლებისგან განსხვავებით, როგორიცაა FTP, HTTP კავშირი წყდება მოთხოვნის დასრულების შემდეგ. ასე რომ, მას შემდეგ რაც თქვენი ვებ ბრაუზერი გამოგზავნის მოთხოვნას და სერვერი უპასუხებს გვერდს, კავშირი იხურება.
HTTP პრობლემების მოგვარება
HTTP-ზე გადაცემული შეტყობინებები შეიძლება ჩავარდეს რამდენიმე მიზეზის გამო:
- მომხმარებლის შეცდომა.
- ბრაუზერის ან ვებ სერვერის გაუმართაობა.
- შეცდომები ვებ გვერდების შექმნისას.
- ქსელის დროებითი ხარვეზები.
როდესაც ეს წარუმატებლობა ხდება, პროტოკოლი აღწერს მარცხის მიზეზს და აცნობებს შეცდომის კოდს ბრაუზერს, რომელსაც ეწოდება HTTP სტატუსის ხაზი/კოდი. შეცდომები იწყება გარკვეული რიცხვით, რათა მიუთითებდეს რა სახის შეცდომაა.
მაგალითად, შეცდომები ოთხით დაწყებული წარუმატებლობის კოდით მიუთითებს იმაზე, რომ გვერდის მოთხოვნა ვერ შესრულდება სწორად, ან რომ მოთხოვნა შეიცავს არასწორ სინტაქსს. მაგალითად, 404 შეცდომა ნიშნავს, რომ ვებ გვერდი ვერ მოიძებნა; ზოგიერთი ვებსაიტი გთავაზობთ სახალისო მორგებული 404 შეცდომის გვერდებსაც კი.