DevToolPal
हि
1xx सूचनात्मक

101 Switching Protocols

प्रोटोकॉल बदल रहा है

इसका मतलब

सर्वर उस प्रोटोकॉल पर जाने को सहमत है जो क्लाइंट ने Upgrade हेडर में माँगा, अक्सर WebSocket। इस रिस्पॉन्स के बाद कनेक्शन नया प्रोटोकॉल इस्तेमाल करता है।

आम कारण

  • WebSocket हैंडशेक सफल हुआ
  • क्लाइंट ने h2c (बिना एन्क्रिप्शन वाला HTTP/2) अपग्रेड माँगा
  • कोई कस्टम प्रोटोकॉल अपग्रेड स्वीकार हुआ

कैसे ठीक करें

अगर आप क्लाइंट या विज़िटर हैं

WebSocket के लिए 101 का मतलब सफलता है। अगर 101 की उम्मीद थी पर 200 या 400 मिला, तो जाँचें कि URL WebSocket एंडपॉइंट पर जाता है और प्रॉक्सी Upgrade व Connection हेडर आगे भेजते हैं।

अगर आप साइट या API चलाते हैं

nginx या लोड बैलेंसर के पीछे Upgrade और Connection को स्पष्ट रूप से पास करें (proxy_set_header Upgrade $http_upgrade; Connection "upgrade") और लंबे समय तक चलने वाले सॉकेट के लिए idle टाइमआउट बढ़ाएँ।

उदाहरण रिस्पॉन्स

HTTP/1.1
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=

स्पेसिफ़िकेशन

RFC 9110 §15.2.2

अक्सर पूछे जाने वाले सवाल

› मेरा WebSocket 101 के बजाय 400 क्यों लौटाता है?

हैंडशेक हेडर गायब हैं या बदल दिए गए हैं, अक्सर किसी प्रॉक्सी ने Upgrade/Connection हटा दिए, या Sec-WebSocket-Key या वर्शन अमान्य है।

› क्या HTTP/2 में 101 इस्तेमाल होता है?

सिर्फ़ दुर्लभ बिना एन्क्रिप्शन वाले h2c अपग्रेड में। ब्राउज़र HTTP/2 को TLS ALPN से तय करते हैं, और HTTP/2 में खुद कोई 101 रिस्पॉन्स नहीं है।