რას ნიშნავს HTTP პროტოკოლი
HTTP ნიშნავს ჰიპერტექსტის გადაცემის პროტოკოლს (Hyper Text Transfer Protocol).
ჰიპერტექსტის გადაცემის პროტოკოლი არის წესების ერთობლიობა, რომელიც გამოიყენება WWW (მსოფლიო ქსელში) ფაილების, აუდიო, ვიდეო, გრაფიკული გამოსახულების, ტექსტის და სხვა მულტიმედიური ფაილების გადასაცემად.
HTTP არის პროგრამის დონის პროტოკოლი. კომუნიკაცია ჩვეულებრივ ხდება TCP / IP სოკეტების საშუალებით, მაგრამ ასევე შეიძლება გამოყენებულ იქნას ნებისმიერი საიმედო ტრანსპორტი.
სტანდარტული (ნაგულისხმევი) პორტი HTTP კავშირისთვის არის 80, მაგრამ შეიძლება სხვა პორტის გამოყენებაც .
HTTP სტატუსის კოდები WEB – გვერდების სასიცოცხლო ნაწილია. თქვენს მიერ გაკეთებული ყველა მოთხოვნა, ყოველთვის, როდესაც დააჭერთ ბმულს ან შეიყვანთ URL– ს, მიიღებთ პასუხს. ამ პასუხის მიღმა დგას ციფრული კოდი, რომელიც აჯამებს შედეგს.
ურთიერთობა WEB – კლიენტებსა და სერვერებს შორის
ინტერნეტის დათვალიერება ხდება კლიენტებსა და სერვერებს შორის კომუნიკაციის შედეგად.
როდესაც გვერდის ნახვას ითხოვთ, თქვენი კლიენტი (ბრაუზერი) თხოვნას უგზავნის სერვერს (ვებსაიტს), რა დროსაც სერვერი გიგზავნით პასუხს, რომ წაიკითხოთ. თავის საპასუხოდ, ქსელის სერვერი მოიცავს არა მხოლოდ შინაარსს. თავდაპირველად, ის მოიცავს სათაურების სერიას, მეტამონაცემების მცირე ნაწილებს, რომლებიც ეხმიანება პასუხს.
პროტოკოლის ვერსიის საჩვენებლად, HTTP იყენებს <major>. <minor> ნუმერაციის სქემას. პროტოკოლის ვერსიების პოლიტიკა საშუალებას აძლევს გამგზავნს მიუთითოს შეტყობინების ფორმატი და მისი შესაძლებლობები შემდგომი HTTP კომუნიკაციის გასაგებად.
შინაარსის ტიპის სათაური შეიძლება ასე გამოიყურებოდეს:
Content-Type: text/html; charset=UTF-8
ეს ნიშნავს, რომ “პასუხი არის HTML”
შინაარსამდე, სათაურებამდეც კი, ყველა HTTP პასუხი შეიცავს სტრიქონს, რომელიც ასე გამოიყურება:
HTTP/1.1 200 OK
ამ მაგალითში, HTTP ვერსიის (1.1) პარალელურად, სტატუსის კოდი აწერია “200 OK“.
სხვა სიტყვებით რომ ვთქვათ, ”მოთხოვნა წარმატებით შესრულდა ყველაფერი კარგია, აი შენი შინაარსი”.
200 არის ყველაზე მნიშვნელოვანი ბიტი. სისტემებს შეუძლიათ ტესტირებით, ზუსტად დაადგინონ რა მოხდა. “OK” კარგი მოკლე მინიშნებაა, სადაც აღწერილია სტატუსი ნებისმიერი ადამიანისთვის.
სტანდარტული პასუხი წარმატებული HTTP მოთხოვნებისთვის. ფაქტობრივი პასუხი დამოკიდებული იქნება გამოყენებული მოთხოვნის მეთოდზე.
GET მოთხოვნით, პასუხი შეიცავს სუბიექტს, რომელიც შეესაბამება მოთხოვნილ რესურსს.
POST მოთხოვნაში პასუხი შეიცავს სუბიექტს, რომელიც აღწერს ან შეიცავს მოქმედების შედეგს.
HTTP ტატუსის საერთო კოდების მაგალითები
404 და 200 სტატუსის კოდები ძალიან გავრცელებულია, მაგრამ კიდევ ბევრი მსგავსი დანიშნულებისა და შესაძლებლობების კოდი არსებობს.
500 (INTERNAL SERVER ERROR) შეცდომის სტატუსია. ეს ნიშნავს, რომ სერვერზე მოხდა რაღაც შეცდომა და მას არ შეუძლია შეასრულოს მოთხოვნა. ეს შეიძლება იყოს პროგრამირების შეცდომა ან გათიშვის დროს შეცდომის სხვა შეცდომა.
403 (Forbidden) ნიშნავს, რომ სერვერმა გაიაზრა მოთხოვნა, მაგრამ უარს ამბობს მასზე.
ეს ხშირად ეხება მომხმარებლებთან დაკავშირებულ ქმედებებს უფრო რთულ ვებ – აპებში.
მაგალითად, იმ ტექსტის რედაქტირებისას, რომელზე უფლებებსაც სხვა ფლობს
401 (Unauthorized) ძალიან ჰგავს 403-ს. ამ შემთხვევაში, თავდაპირველ მოთხოვნას დაუშვებელია რესურსზე წვდომა. მოთხოვნა არ იქნა გამოყენებული, რადგან მას არ გააჩნია ნამდვილი ავტორიზაციის სერთიფიკატები სამიზნე რესურსისთვის. სხვა სიტყვებით რომ ვთქვათ, თქვენ არ ხართ სისტემაში შესული.
400 (Bad Request) ნიშნავს, რომ სერვერს არ შეეძლო გაეგო, რას ითხოვდნენ. შესაძლოა, ეს იყოს დაკარგული ინფორმაცია, მაგალითად, URL პარამეტრი, არასწორად მოთხოვნილი სინტაქსი, თხოვნის არასწორი შეტყობინების ფორმულირება ან თაღლითური თხოვნის მარშრუტიზაცია.
HTTP სტატუსის კოდის ჯგუფები
ყველა სტატუსის კოდი, რომელიც აქამდე განვიხილეთ,ეს არის სამნიშნა რიცხვი 200-დან 500-მდე, რომელიც მიუთითებს თხოვნის შედეგზე. ეს შემთხვევითი არ არის. HTTP სტატუსის სიგრძე სამივე ციფრია, პირველი ციფრი განსაზღვრავს პასუხის კლასს. ბოლო ორ ციფრს კატეგორიზაციის როლი არ აქვს.
პირველი ციფრისთვის არსებობს ხუთი მნიშვნელობა
პირველი ჯგუფი 100-199-ის ჩათვლით
1xx, არის “ინფორმაციული”. ეს შემთხვევები ნიშნავს, რომ სერვერს ესმის მოთხოვნა, მაგრამ არ არის მზად პასუხის გასაგზავნად.მოთხოვნა მიღებულია, პროცესი გრძელდება. სტატუსის კოდის ეს კლასი მიუთითებს დროებით რეაგირებაზე, რომელიც შედგება მხოლოდ სტატუსის ხაზისა და არასავალდებულო სათაურებისგან და წყდება ცარიელი ხაზით. მას შემდეგ, რაც HTTP / 1.0– მა არ განსაზღვრა 1xx სტატუსის კოდები, სერვერებმა არ უნდა გაგზავნონ 1xx პასუხი HTTP / 1.0 კლიენტს, გარდა ექსპერიმენტული პირობებისა.მსგავს შემთხვევებს ბევრს ვერ ნახავთ მოქმედებაში, მაგრამ ისინი შექმნილია სისტემებისთვის, რომლებიც მათ სჭირდებათ.
მეორე ჯგუფი 200-299-ის ჩათვლით
2xx არის თქვენთვის სასურველი პასუხის რეაგირება: 200 (OK) . ეს არის ყველაზე გავრცელებული წარმატების შემთხვევა, მაგრამ არსებობს სხვებიც.
204 (კონტენტი) კოდი საკმაოდ უცნაურია. სერვერს შეუძლია დააბრუნოს იგი PUT ან POST ან PATCH– ის შედეგად. ამ შემთხვევაში მნიშვნელობა იქნება ის, რომ სერვერმა განახლება მოახდინა, მაგრამ საჭირო არ არის კლიენტისთვის რამის დაბრუნება.
მესამე ჯგუფი 300-399 ის ჩათვლით
3xx კოდები აჩვენებს, თუ როგორ გადადიან HTTP სტატუსები მხოლოდ წარმატების ან წარუმატებლობის კომუნიკაციის მიღმა. სტატუსის კოდები, რომლებიც იწყება 3-ით, მიუთითებს გადამისამართებაზე. ეს ნიშნავს, რომ ორიგინალი მოთხოვნა ცუდი არ იყო, მაგრამ კლიენტმა უნდა გამოიყენოს განსხვავებული URL.
ეს შეიძლება იყოს დროებითი. მაგალითად, 302-ის შემთხვევაში, რომელიც საიტმა შეიძლება გამოიყენოს სარეკლამო URL- ის მასპინძლობისთვის, რომელიც გადამისამართდება საბოლოო პროდუქტის გვერდზე.
ამის ნაცვლად, საიტს შეუძლია გამოიყენოს მუდმივი გადამისამართება, სტატუსის 301-ის საშუალებით . ეს კარგი პრაქტიკაა, როდესაც, მაგალითად, საიტმა შეცვალა გვერდის სახელი.
გადამისამართების სტატუსებს, როგორც წესი, ახლავს მდებარეობის სათაური. ის ეუბნება კლიენტს რომელი URL მოითხოვოს ორიგინალის ნაცვლად. სერვერები ხშირად რეაგირებენ დამატებითი სათაურებით.
მეოთხე ჯგუფი 400-499-ის ჩათვლით
4-ით დაწყებული სტატუსები კლიენტის შეცდომებია. არსებითად, ეს ნიშნავს, რომ ”ბრაუზერმა (ან მისმა მომხმარებელმა) დაუშვა შეცდომა”. ჩვენ უკვე განვიხილეთ რამდენიმე მათგანი (400, 401, 403, 404) და ეს არის სტატუსის კოდების უდიდესი ჯგუფი მნიშვნელოვანი რაოდენობით. კლიენტის შეცდომის სხვა მაგალითები მოიცავს URL– ს მოთხოვნას, რომელიც ადრე არსებობდა,მაგრამ სამიზნე რესურსი აღარ არის ხელმისაწვდომი: 410 (Gone) . ასევე არსებობს 429 (Too Many Requests) , რომელიც მხარს უჭერს კურსის შეზღუდვას ისე, რომ რესურსები არ გადაიტვირთოს. ეს ძალიან ხშირად გამოიყენება REST API- ების მიერ.
დაბოლოს, 500-599 დიაპაზონის სტატუსები მიუთითებს, რომ სერვერს რაღაც შეეშალა, ხოლო ის ცდილობდა მოთხოვნის შესრულებას. გარდა HEAD– ის მოთხოვნაზე პასუხისა, სერვერი უნდა შეიცავდეს ობიექტს, რომელიც შეიცავს ახსნას შეცდომის მდგომარეობის შესახებ და არის თუ არა ეს დროებითი ან მუდმივი მდგომარეობა.