మేము 16 ఏళ్లుగా నకిలీగా వాడుతున్న HTTP మెథడ్
బ్యాకెండ్ డెవలపర్లు సెర్చ్ ఎండ్పాయింట్లతో నిరంతరం ఒక సమస్యను ఎదుర్కొంటున్నారు.
సెర్చింగ్ అనేది ఒక రీడ్ ఆపరేషన్ కాబట్టి మీరు GETని ఉపయోగించాలనుకుంటారు. కానీ మీ సెర్చ్ ఫిల్టర్లు చాలా పెద్దవిగా మారుతాయి. మీ URL రెండు వేల క్యారెక్టర్లకు చేరుకుంటుంది. ప్రాక్సీలు మీ రిక్వెస్ట్ను కత్తిరిస్తాయి (truncate). దీనివల్ల మీ సెర్చ్ విఫలమవుతుంది.
ఆ పరిమితిని సరిచేయడానికి మీరు POSTకి మారుతారు. ఇది పనిచేస్తుంది, కానీ ఇది ఒక అబద్ధం. మీరు డేటాను మారుస్తున్నారని POST ప్రతి ప్రాక్సీ మరియు క్యాచీకి తెలియజేస్తుంది. ఇది క్యాషింగ్ను నిలిపివేస్తుంది. దీనివల్ల మీరు GET ఇచ్చే వేగాన్ని కోల్పోతారు.
పదహారు ఏళ్లపాటు, మాకు మధ్యస్థ మార్గం లేదు.
జూన్ 2026లో, IETF RFC 10008ను ప్రచురించింది. ఇది QUERY మెథడ్ను పరిచయం చేస్తోంది. 2010 తర్వాత ఇది మొదటి కొత్త HTTP మెథడ్.
QUERY, GET మరియు POST లలోని ఉత్తమ భాగాలను కలుపుతుంది:
• ఇది సంక్లిష్టమైన ఫిల్టర్ల కోసం రిక్వెస్ట్ బాడీని కలిగి ఉంటుంది. • ఇది సేఫ్ (safe), అంటే సర్వర్ స్టేట్ను మార్చదు. • ఇది ఐడెంపోటెంట్ (idempotent), అంటే మీరు ఒకే ఫలితంతో దీనిని రెండుసార్లు రన్ చేయవచ్చు. • ఇది క్యాచబుల్ (cacheable), దీనివల్ల CDNs రెస్పాన్స్లను స్టోర్ చేయగలవు.
QUERY రిక్వెస్ట్ ఇలా ఉంటుంది:
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 క్యాష్ రిక్వెస్ట్ బాడీని కీలో భాగంగా ఉపయోగించాలి. మీ ఇన్ఫ్రాస్ట్రక్చర్ దీనిని అర్థం చేసుకోకపోతే, ఒక యూజర్ మరొక యూజర్ యొక్క ప్రైవేట్ సెర్చ్ ఫలితాలను చూడవచ్చు.
దీనిని వెంటనే ప్రొడక్షన్లో ఉపయోగించడానికి తొందరపడకండి. ఈ ఎకోసిస్టమ్ దీనికి అలవాటు పడటానికి సమయం పడుతుంది.
• బ్రౌజర్లు ఇంకా fetch()లో QUERYని సపోర్ట్ చేయవు.
• HTML ఫారమ్లు కేవలం GET మరియు POSTలను మాత్రమే సపోర్ట్ చేస్తాయి.
• అనేక API గేట్వేలు మరియు WAFలు తెలియని మెథడ్స్ను తిరస్కరిస్తాయి.
మీ APIని QUERYని దృష్టిలో ఉంచుకుని డిజైన్ చేయండి, కానీ ప్రస్తుతానికి మీ POST ఎండ్పాయింట్లను అలాగే ఉంచండి.
QUERY ఒక సుదీర్ఘ రాజీకి ముగింపు పలుకుతుంది. ఇది నెట్వర్క్కు అబద్ధం చెప్పకుండానే సంక్లిష్టమైన ప్రశ్నలను అడగడానికి మిమ్మల్ని అనుమతిస్తుంది.
మీరు ఎకోసిస్టమ్ సిద్ధమయ్యే వరకు వేచి చూస్తున్నారా, లేదా ఇప్పుడు QUERYని టెస్ట్ చేస్తున్నారా?
Source: https://dev.to/arya_koste_5845807df94776/query-the-http-method-weve-been-faking-for-16-years-f9i
