HTTP ਨੂੰ 20 ਸਾਲਾਂ ਵਿੱਚ ਆਪਣਾ ਪਹਿਲਾ ਨਵਾਂ ਮੈਥਡ ਮਿਲਿਆ ਹੈ
ਤੁਸੀਂ ਸ਼ਾਇਦ ਇਹ ਪਹਿਲਾਂ ਵੀ ਕੀਤਾ ਹੋਵੇਗਾ।
ਤੁਹਾਨੂੰ ਉਤਪਾਦਾਂ (products) ਦੀ ਭਾਲ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। ਤੁਹਾਡੇ ਸਰਚ ਫਿਲਟਰ ਇੱਕ URL ਲਈ ਬਹੁਤ ਵੱਡੇ ਹਨ। ਇਸ ਨੂੰ ਠੀਕ ਕਰਨ ਲਈ, ਤੁਸੀਂ POST ਰਿਕੁਐਸਟ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ।
ਇਹ ਕੰਮ ਕਰਦਾ ਹੈ। ਪਰ ਇਹ ਇੱਕ ਝੂਠ ਹੈ। ਤੁਸੀਂ HTTP ਨੂੰ ਦੱਸਦੇ ਹੋ ਕਿ ਤੁਸੀਂ ਡਾਟਾ ਬਦਲ ਰਹੇ ਹੋ ਜਦੋਂ ਕਿ ਤੁਸੀਂ ਸਿਰਫ਼ ਇਸਨੂੰ ਪੜ੍ਹ ਰਹੇ ਹੁੰਦੇ ਹੋ।
ਜੂਨ 2026 ਵਿੱਚ, IETF ਨੇ RFC 10008 ਪ੍ਰਕਾਸ਼ਿਤ ਕੀਤਾ। ਇਹ QUERY ਨਾਮਕ ਇੱਕ ਨਵਾਂ HTTP ਮੈਥਡ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ। ਇਹ ਦੋ ਦਹਾਕਿਆਂ ਤੋਂ ਵੱਧ ਸਮੇਂ ਵਿੱਚ ਪਹਿਲਾ ਨਵਾਂ ਮੈਥਡ ਹੈ। ਇਹ ਉੱਪਰ ਦੱਸੇ ਗਏ ਅਸਲ ਮਸਲੇ ਨੂੰ ਹੱਲ ਕਰਦਾ ਹੈ।
The Current Problem
GET ਡਾਟਾ ਪੜ੍ਹਨ ਲਈ ਬਹੁਤ ਵਧੀਆ ਹੈ। ਇਹ ਸੁਰੱਖਿਅਤ ਅਤੇ cacheable ਹੈ। ਪਰ ਇਹ ਰਿਕੁਐਸਟ ਬਾਡੀ (request body) ਨਹੀਂ ਲੈ ਕੇ ਜਾ ਸਕਦਾ। URL ਦੀਆਂ ਅੱਖਰਾਂ ਦੀਆਂ ਸੀਮਾਵਾਂ ਵੀ ਹੁੰਦੀਆਂ ਹਨ।
POST ਬਾਡੀ ਲੈ ਕੇ ਜਾਂਦਾ ਹੈ। ਪਰ HTTP ਮੰਨਦਾ ਹੈ ਕਿ POST ਸਟੇਟ (state) ਨੂੰ ਬਦਲਦਾ ਹੈ। ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਤੁਸੀਂ ਆਟੋਮੈਟਿਕ ਕੈਸ਼ਿੰਗ ਅਤੇ ਸੁਰੱਖਿਅਤ ਰੀਟ੍ਰਾਈਜ਼ (retries) ਗੁਆ ਲੈਂਦੇ ਹੋ। ਜੇਕਰ ਕੋਈ POST ਰਿਕੁਐਸਟ ਟਾਈਮ ਆਊਟ ਹੋ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਇਸਨੂੰ ਸਿਰਫ਼ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਨਹੀਂ ਕਰ ਸਕਦੇ। ਤੁਹਾਨੂੰ ਨਹੀਂ ਪਤਾ ਹੁੰਦਾ ਕਿ ਸਰਵਰ ਨੇ ਪਹਿਲਾਂ ਹੀ ਕੁਝ ਬਦਲ ਦਿੱਤਾ ਹੈ ਜਾਂ ਨਹੀਂ।
The Solution: QUERY
QUERY ਇੱਕ ਬਾਡੀ ਵਾਲੀ GET ਰਿਕੁਐਸਟ ਹੈ। ਇਹ ਦੋ ਗਾਰੰਟੀ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ:
- ਇਹ ਸੁਰੱਖਿਅਤ ਹੈ। ਇਹ ਡਾਟਾ ਨੂੰ ਬਦਲਦਾ ਨਹੀਂ ਹੈ।
- ਇਹ idempotent ਹੈ। ਇਸਨੂੰ ਦੋ ਵਾਰ ਭੇਜਣ ਨਾਲ ਉਹੀ ਨਤੀਜਾ ਮਿਲਦਾ ਹੈ ਜੋ ਇੱਕ ਵਾਰ ਭੇਜਣ ਨਾਲ ਮਿਲਦਾ ਹੈ।
How to use it today
ਤੁਸੀਂ ਇਸਨੂੰ ਹੁਣੇ Axios ਜਾਂ Fetch ਨਾਲ ਵਰਤ ਸਕਦੇ ਹੋ।
Axios ਉਦਾਹਰਨ:
axios.request({
method: 'QUERY',
url: '/api/products',
data: { category: 'shoes', maxPrice: 100 }
})
Fetch ਉਦਾਹਰਨ:
fetch('/api/products', {
method: 'QUERY',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ category: 'shoes', maxPrice: 100 })
})
What to expect next
ਇਹ ਤਬਦੀਲੀ ਰਾਤੋ-ਰਾਤ ਨਹੀਂ ਹੋਵੇਗੀ। ਇੱਥੇ ਰੋਡਮੈਪ ਹੈ:
- Infrastructure: Nginx ਅਤੇ Apache ਇਹਨਾਂ ਰਿਕੁਐਸਟਾਂ ਨੂੰ ਪਾਸ ਕਰਨਗੇ। QUERY ਮੈਥਡ ਦੀ ਇਜਾਜ਼ਤ ਦੇਣ ਲਈ ਤੁਹਾਨੂੰ ਆਪਣੇ WAF ਜਾਂ ਸੁਰੱਖਿਆ ਨਿਯਮਾਂ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ।
- Frameworks: 2026 ਅਤੇ 2027 ਦੌਰਾਨ Spring, Rails, ਅਤੇ Express ਦੁਆਰਾ ਨੇਟਿਵ ਸਪੋਰਟ (native support) ਜੋੜਨ ਦੀ ਉਮੀਦ ਰੱਖੋ।
- CDNs: ਕਿਉਂਕਿ Cloudflare ਅਤੇ Akamai ਦੇ ਇੰਜੀਨੀਅਰਾਂ ਨੇ ਇਸਨੂੰ ਲਿਖਣ ਵਿੱਚ ਮਦਦ ਕੀਤੀ ਹੈ, ਇਸ ਲਈ ਤੇਜ਼ CDN ਸਪੋਰਟ ਦੀ ਉਮੀਦ ਰੱਖੋ। ਇਹ ਕੈਸ਼ਿੰਗ ਨੂੰ ਬਹੁਤ ਆਸਾਨ ਬਣਾਉਂਦਾ ਹੈ।
Why this matters for your code
- Automatic Retries: ਕਿਉਂਕਿ QUERY idempotent ਹੈ, ਮੋਬਾਈਲ ਐਪਸ ਅਤੇ ਕਲਾਇੰਟ ਅਸਫਲ ਰਿਕੁਐਸਟਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਰੂਪ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰ ਸਕਦੇ ਹਨ।
- Better Caching: CDNs ਬਾਡੀ ਦੇ ਅਧਾਰ 'ਤੇ QUERY ਜਵਾਬਾਂ ਨੂੰ ਕੈਸ਼ ਕਰ ਸਕਦੇ ਹਨ। ਤੁਸੀਂ ਆਪਣੇ ਹੱਥ ਨਾਲ ਬਣਾਏ ਗਏ Redis ਕੈਸ਼ ਲੇਅਰਾਂ ਨੂੰ ਹਟਾ ਸਕਦੇ ਹੋ।
- Cleaner URLs: ਤੁਹਾਨੂੰ ਹੁਣ URL ਕੁਐਰੀ ਪੈਰਾਮੀਟਰਾਂ ਵਿੱਚ ਗੁੰਝਲਦਾਰ JSON ਭਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ।
- Semantic APIs: ਤੁਹਾਡੀ API ਡਾਕੂਮੈਂਟੇਸ਼ਨ ਹੋਰ ਸਪਸ਼ਟ ਹੋ ਜਾਵੇਗੀ। ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਪਤਾ ਹੋਵੇਗਾ ਕਿ ਕਿਹੜੇ ਐਂਡਪੁਆਇੰਟ ਡਾਟਾ ਪੜ੍ਹਦੇ ਹਨ ਅਤੇ ਕਿਹੜੇ ਡਾਟਾ ਲਿਖਦੇ ਹਨ।
ਆਪਣੇ ਮੌਜੂਦਾ POST ਐਂਡਪੁਆਇੰਟਾਂ ਦੀ ਜਾਂਚ (audit) ਕਰਕੇ ਆਪਣੀ ਟੀਮ ਨੂੰ ਤਿਆਰ ਕਰੋ। ਪਛਾਣੋ ਕਿ ਕਿਹੜੇ ਸਿਰਫ਼ ਡਾਟਾ ਪੜ੍ਹਦੇ ਹਨ। ਉਹ ਤੁਹਾਡੇ ਭਵਿੱਖ ਦੇ QUERY ਐਂਡਪੁਆਇੰਟ ਹੋਣਗੇ।
