ინტერნეტ ინჟინერიის სამუშაო ჯგუფმა (IETF) ახალი სტანდარტი — RFC 10008 გამოაქვეყნა, რომელიც HTTP პროტოკოლს QUERY მეთოდით ამდიდრებს. ეს ინოვაცია შექმნილია იმისთვის, რომ გადაჭრას ის ტექნიკური გამოწვევები, რომლებიც დღეს GET და POST მეთოდების გამოყენებისას იქმნება.
ტრადიციულად, GET მოთხოვნები გამოიყენება მონაცემების მისაღებად, თუმცა მათ აქვთ შეზღუდვები URI-ს სიგრძესთან დაკავშირებით. როდესაც მოთხოვნა ძალიან მოცულობითია, დეველოპერები ხშირად POST მეთოდს მიმართავენ, თუმცა ეს უკანასკნელი არ არის გათვლილი უსაფრთხო და იდემპოტენტური ოპერაციებისთვის.
| GET | QUERY | POST | |
|---|---|---|---|
| Safe | yes | yes | potentially no |
| Idempotent | yes | yes | potentially no |
| URI for query itself | yes (by definition) | optional (Location response field) | no |
| URI for query result | optional (Content-Location response field) | optional (Content-Location response field) | optional (Content-Location response field) |
| Cacheable | yes | yes | yes, but only for future GET or HEAD requests |
| Content (body) | "no defined semantics" | expected (semantics per target resource) | expected (semantics per target resource) |
ახალი QUERY მეთოდი ამ ხარვეზს ავსებს. მისი მთავარი უპირატესობა ისაა, რომ იგი აერთიანებს POST-ის მოქნილობას (მონაცემების სხეულში გადაცემა) და GET-ის უსაფრთხოებას. შედეგად, სერვერებსა და ქეშირების სისტემებს შეუძლიათ გაცილებით ეფექტურად მართონ მოთხოვნები, მათ შორის მათი ავტომატური ხელახალი გაშვება კავშირის შეწყვეტის შემთხვევაში.
რატომ არის ეს მნიშვნელოვანი?
სპეციფიკაციის თანახმად, QUERY მეთოდი სერვერს საშუალებას აძლევს, დაამუშაოს ინფორმაცია ისე, რომ არ მოხდეს რესურსის მდგომარეობის ცვლილება. ეს არის კრიტიკული მომენტი ვებ-აპლიკაციების სტაბილურობისთვის. გარდა ამისა, ახალი მეთოდი დაცულია ე.წ. „content sniffing“-ისგან და მკაცრად მოითხოვს სწორი Media Type-ების გამოყენებას.
სერვერებს შეუძლიათ, QUERY მოთხოვნებზე პასუხად დააბრუნონ 2xx კოდები, რაც ადასტურებს ოპერაციის წარმატებას. თუ მოთხოვნა არასწორად არის ფორმირებული, სტანდარტი ავალდებულებს სერვერს, დააბრუნოს შესაბამისი 4xx შეცდომის კოდი, რაც აადვილებს დებაგინგს და აძლიერებს უსაფრთხოებას.
განსხვავება არსებულ მეთოდებთან
- უსაფრთხოება: QUERY მეთოდი იდემპოტენტურია, რაც ნიშნავს, რომ ერთი და იმავე მოთხოვნის რამდენჯერმე გაგზავნა არ გამოიწვევს სერვერზე არასასურველ გვერდით ეფექტებს.
- ქეშირება: განსხვავებით POST-ისგან, QUERY მოთხოვნის შედეგები შეიძლება დაქეშირდეს, რაც ამცირებს დატვირთვას სერვერზე.
- URI-ს შეზღუდვები: აღარ არის საჭირო მონაცემების URI-ში ჩატევა, რაც ხსნის პრობლემებს დიდ მოთხოვნებთან დაკავშირებით.
RFC 10008-ის მიღება მნიშვნელოვანი ნაბიჯია ვებ-სტანდარტების ევოლუციაში, რაც დეველოპერებს უფრო პროგნოზირებად და ეფექტურ ინსტრუმენტებს აძლევს მონაცემთა დამუშავებისთვის.
| Method Name | Safe | Idempotent | Specification |
|---|---|---|---|
| QUERY | yes | yes | Section 2 of RFC 10008 |
| Field Name | Status | Structured Type | Reference | Comments |
|---|---|---|---|---|
| Accept-Query | permanent | List | Section 3 of RFC 10008 |





დისკუსია
0 კომენტარი
ჯერ კომენტარი არ არის — იყავი პირველი.