आपण १६ वर्षांपासून ज्या HTTP मेथडचा खोटा वापर करत आहोत

बॅकएंड डेव्हलपर्सना (Backend developers) सर्च एंडपॉइंट्सबाबत (search endpoints) सतत एका समस्येचा सामना करावा लागतो.

तुम्हाला GET वापरायला आवडते कारण सर्च करणे ही एक 'read' क्रिया आहे. पण तुमचे सर्च फिल्टर्स खूप मोठे होत जातात. तुमची URL दोन हजार वर्णांपर्यंत पोहोचते. प्रॉक्सीज (Proxies) तुमची विनंती (request) कापून टाकतात (truncate). तुमचे सर्च काम करणे थांबवते.

मर्यादा सुनावून घेण्यासाठी तुम्ही POST कडे वळता. हे काम करते, पण ते एक खोटेपणा आहे. POST प्रत्येक प्रॉक्सी आणि कॅशला (cache) सांगते की तुम्ही डेटा बदलत आहात. यामुळे सर्व कॅशिंग थांबते. तुम्ही GET ची गती गमावता.

सोळा वर्षांपासून, आपल्याकडे कोणताही सुवर्णमध्य नव्हता.

जून २०२६ मध्ये, IETF ने RFC 10008 प्रकाशित केले. हे QUERY मेथडची ओळख करून देते. २०१० नंतर ही पहिली नवीन HTTP मेथड आहे.

QUERY मध्ये GET आणि POST चे सर्वोत्तम गुण एकत्र आहेत:

• हे जटिल फिल्टर्ससाठी 'request body' सोबत येते. • हे 'safe' आहे, म्हणजेच सर्व्हरची स्थिती (state) बदलत नाही. • हे 'idempotent' आहे, म्हणजेच तुम्ही ते दोनदा चालवले तरी निकाल तोच मिळेल. • हे 'cacheable' आहे, ज्यामुळे CDNs ला प्रतिसाद (responses) साठवता येतात.

A QUERY request looks like this:

QUERY /products HTTP/1.1
Host: api.shop.example
Content-Type: application/json

{
  "filter": { "category": "boots", "inStock": true },
  "sort": "-price",
  "limit": 20
}

नवीन RFC मध्ये 'Accept-Query' हेडर देखील जोडले आहे. यामुळे API तुम्हाला सांगू शकते की ते कोणत्या क्वेरी फॉरमॅट्सना सपोर्ट करते.

डेव्हलपर्ससाठी एक इशारा:

QUERY विनंतीचे कॅशिंग करणे हे GET विनंतीपेक्षा वेगळे आहे. GET कॅश URL ला 'key' म्हणून वापरते. QUERY कॅशला 'request body' चा काही भाग 'key' म्हणून वापरावा लागतो. जर तुमच्या इन्फ्रास्ट्रक्चरला (infrastructure) हे समजले नाही, तर एका वापरकर्त्याला दुसऱ्या वापरकर्त्याचे खाजगी सर्च रिझल्ट्स दिसू शकतात.

हे लगेच प्रोडक्शनमध्ये (production) वापरण्यासाठी घाई करू नका. इकोसिस्टमला (ecosystem) याच्याशी जुळवून घेण्यासाठी वेळ लागेल.

• ब्राउझर्स अजूनही fetch() मध्ये QUERY ला सपोर्ट करत नाहीत. • HTML फॉर्म्स फक्त GET आणि POST ला सपोर्ट करतात. • अनेक API गेटवे आणि WAFs अनोळखी मेथड्स नाकारतील.

तुमची API डिझाइन करताना QUERY चा विचार करा, पण सध्या तरी तुमचे POST एंडपॉइंट्स तसेच ठेवा.

QUERY या दीर्घकालीन तडजोडीचा अंत करते. हे तुम्हाला नेटवर्कला खोटे न सांगता जटिल प्रश्न विचारू देते.

तुम्ही इकोसिस्टमच्या अपडेट होण्याची वाट पाहत आहात, की आता QUERY टेस्ट करत आहात?

Source: https://dev.to/arya_koste_5845807df94776/query-the-http-method-weve-been-faking-for-16-years-f9i