एक असली अनुरोध और एक असली प्रतिक्रिया पढ़ें, और जानें कि 200, 404 और 500 का असल में मतलब क्या है।
इस पाठ को Kodokon में खोलेंHTTP (HyperText Transfer Protocol) वह भाषा है जो ब्राउज़र और सर्वर आपस में बोलते हैं। अच्छी ख़बर: यह समझ से बाहर वाली बाइनरी नहीं, बल्कि पढ़ने लायक टेक्स्ट है। एक अनुरोध कुछ ही पंक्तियों में समा जाता है: एक क्रिया, एक पता, फिर हेडर जो संदर्भ भर देते हैं (मुझे कौन सी भाषा पसंद है, मैं कौन सा ब्राउज़र इस्तेमाल कर रहा हूँ)। प्रतिक्रिया भी वही रूप अपनाती है: एक संख्यात्मक कोड, हेडर, एक खाली पंक्ति, और फिर सामग्री।
curl -i https://example.com
HTTP/2 200
content-type: text/html; charset=UTF-8
content-length: 1256
cache-control: max-age=86400
<!doctype html>
<html>
...अनुरोध की शुरुआत में लगी क्रिया को मेथड कहते हैं, और यह आपका इरादा घोषित करती है। GET बस किसी संसाधन को पढ़ने के लिए माँगता है: हर बार जब आप कोई पेज खोलते हैं, ब्राउज़र यही करता है। POST सर्वर को डेटा भेजता है, आम तौर पर तब जब आप कोई पंजीकरण फ़ॉर्म जमा करते हैं। PUT किसी मौजूदा चीज़ को अपडेट करता है, और DELETE उसे हटाने के लिए कहता है। पहली दो पर ही ध्यान दीजिए: पूरे ट्रैफ़िक का बहुत बड़ा हिस्सा इन्हीं का होता है।
curl -X POST -d "name=Sarah&age=30" https://httpbin.org/postहर प्रतिक्रिया तीन अंकों वाले एक स्टेटस कोड से शुरू होती है। अकेला पहला अंक ही आपको स्थिति बता देता है। 2xx श्रेणी के कोड सफलता बताते हैं: 200 का मतलब है "जो आपने माँगा, वह यह रहा"। 3xx कोड रीडायरेक्ट हैं: 301 का मतलब है "यह पेज कहीं और चला गया है, वहाँ जाइए"। 4xx कोड क्लाइंट की तरफ़ की गलती बताते हैं: 404 (संसाधन नहीं मिला), 403 (पहुँच वर्जित), 401 (आपको साइन इन करना होगा)। 5xx कोड सर्वर की तरफ़ की खराबी बताते हैं: 500 वही जानी-पहचानी आंतरिक त्रुटि है।
curl -I https://example.com/this-page-does-not-exist
HTTP/2 404
content-type: text/html; charset=UTF-8