समर्थन की घोषणा और काम करना अलग बातें हैं
सर्वर Alt-Svc रिस्पॉन्स हेडर में HTTP/3 की घोषणा करता है, जिसे क्लाइंट HTTP/1.1 या HTTP/2 पर प्राप्त करता है। यह हेडर केवल एक वादा है। HTTP/3 UDP पर QUIC के ज़रिए चलता है, इसलिए UDP पूरी तरह बंद होने पर भी पेज सामान्य रूप से लोड हो सकता है और ब्राउज़र बिना बताए जिस प्रोटोकॉल पर बना रहता है, वह है HTTP/2.
curl -sI https://server.example/ | grep -i alt-svcवास्तविक स्थानांतरण की पुष्टि करें
केवल QUIC पर पूरा हुआ अनुरोध ही पुष्टि करता है HTTP/3. ऐसा curl उपयोग करें जिसे HTTP/3 समर्थन के साथ बनाया गया हो; कई सिस्टम पैकेज में यह समर्थन नहीं होता और तब विकल्प अस्वीकार हो जाता है, जिससे सर्वर के बारे में कुछ पता नहीं चलता। ब्राउज़र में डेवलपर टूल खोलें और प्रोटोकॉल वाला कॉलम देखें, जिसमें ऐसे अनुरोध के लिए h3 दिखता है। पहली बार आने पर ब्राउज़र HTTP/2 का उपयोग कर सकता है, इसलिए पेज फिर लोड करें।
curl -V | grep -i http3
curl -sS --http3-only -o /dev/null -w '%{http_version}\n' https://server.example/NGINX कॉन्फ़िगरेशन जाँचें
NGINX को TCP लिसनर के साथ QUIC लिसनर भी चाहिए, और उसके संस्करण तथा बिल्ड में इसका समर्थन होना चाहिए। TLS 1.3 आवश्यक है, क्योंकि QUIC सीधे इसका उपयोग करता है। दोबारा लोड करने से पहले कॉन्फ़िगरेशन जाँचें। Alt-Svc में ma का मान वह अवधि है, सेकंड में, जिसके लिए क्लाइंट यह वादा याद रखते हैं; इसलिए परीक्षण के दौरान छोटी अवधि रखें।
listen 443 ssl;
listen 443 quic reuseport;
http2 on;
add_header Alt-Svc 'h3=":443"; ma=300' always;
nginx -V 2>&1 | grep -o with-http_v3_module
sudo nginx -tपूरे रास्ते में UDP 443 खोलें
विफलता का सबसे आम कारण ऐसा फ़ायरवॉल है जो TCP 443 की अनुमति देता है, लेकिन UDP 443 की नहीं। सर्वर और हर बाहरी फ़िल्टर जाँचें। सॉकेट सुन रहा है या नहीं, इसकी पुष्टि सर्वर पर की जा सकती है। कुछ कॉर्पोरेट और सार्वजनिक नेटवर्क जानबूझकर QUIC को रोकते हैं, इसलिए एक नेटवर्क से असफल परीक्षण यह साबित नहीं करता कि सर्वर में खराबी है: दूसरे नेटवर्क से फिर जाँचें।
sudo ss -lunp | grep ':443'
sudo ufw allow 443/udp
sudo tcpdump -ni any udp port 443क्या नया प्रोटोकॉल तेज़ है?
HTTP/3 का सबसे अधिक लाभ उन कनेक्शन पर होता है जिनमें पैकेट खोते हैं या नेटवर्क बदलते हैं, क्योंकि एक पैकेट खोने से दूसरी स्ट्रीम नहीं रुकतीं। अच्छे तार वाले कनेक्शन पर अंतर कम हो सकता है और सर्वर पर CPU उपयोग अधिक हो सकता है। लाभ मान लेने के बजाय अपनी स्थिति में मापें, और जो क्लाइंट UDP उपयोग नहीं कर सकते उनके लिए HTTP/2 उपलब्ध रखें।
CH-J Server Manager में HTTP/3 परीक्षण
Server Diagnostics के साथ HTTP क्लाइंट आता है, इसलिए परीक्षण सिस्टम के curl पर निर्भर नहीं करता। यह QUIC स्थानांतरण पूरा होने के बाद ही HTTP/3 की पुष्टि करता है और Alt-Svc को केवल समर्थन की घोषणा मानता है। UDP टाइमआउट पर यह बताता है कि सर्वर का समर्थन अभी सत्यापित नहीं है, क्योंकि कारण आपके और सर्वर के बीच का नेटवर्क हो सकता है। यह किसी अन्य प्रोटोकॉल पर फ़ॉलबैक को सफलता नहीं मानता।