URL (यूनिफ़ॉर्म रिसोर्स लोकेटर) इंटरनेट के बुनियादी ढाँचे के सबसे महत्वपूर्ण टुकड़ों में से एक हैं। जैसा कि आप वेब एप्लिकेशन बनाते हैं, आपको संसाधनों का पता लगाने और पुनः प्राप्त करने के लिए URL में हेरफेर करने की आवश्यकता होगी।
जब आप अधिक परिष्कृत वेब एप्लिकेशन बनाते हैं, तो आपको सूक्ष्म स्तर पर URL के साथ काम करने की आवश्यकता होगी। आपको योजना, होस्टनाम, पथ और क्वेरी पैरामीटर की पहचान करने की आवश्यकता हो सकती है। आपको यह भी जानना होगा कि URL को कैसे एनकोड और डिकोड करना है ताकि आप विशेष वर्णों को संभाल सकें और अपने वेब एप्लिकेशन को सुरक्षित रख सकें।
गो की मानक लाइब्रेरी यूआरएल और यूआरएल घटकों को संभालने के लिए नेट/यूआरएल पैकेज प्रदान करती है।
यूआरएल पैकेज
यूआरएल पैकेज काम करने के लिए व्यापक कार्य और सुविधाएँ प्रदान करता है यूआरएल और उनके अलग-अलग हिस्से. यह पार्सिंग, निर्माण, एन्कोडिंग और डिकोडिंग URL के लिए कार्य प्रदान करता है, जिससे पैकेज वेब विकास के लिए उपयोगी हो जाता है।
की कुछ प्रमुख विशेषताएं यूआरएल पैकेज HTTP अनुरोधों के लिए हेरफेर और URL निर्माण के लिए अलग-अलग घटकों में URL को पार्स करने की क्षमता है। यूआरएल पैकेज भी प्रदान करता है यूआरएल ए के साथ संरचना पार्स URL में स्ट्रिंग्स को पार्स करने की विधि।
यहाँ है यूआरएल। यूआरएल संरचना मॉडल:
पैकेट मुख्य
प्रकार यूआरएल struct {
// योजना URL की प्रोटोकॉल योजना है,
// जैसे "http" या "https"
योजना डोरी// अपारदर्शी का उपयोग किसी भी अपारदर्शी डेटा को रखने के लिए किया जाता है
// जिसे URL में एन्कोड किया जाना चाहिए
अस्पष्ट डोरी// उपयोगकर्ता अनुरोध करने वाले उपयोगकर्ता के बारे में जानकारी रखता है,
// जैसे उपयोगकर्ता नाम और पासवर्ड
उपयोगकर्ता * उपयोगकर्ता जानकारी// होस्ट होस्टनाम या आईपी एड्रेस है
// URL को होस्ट करने वाले सर्वर का
मेज़बान डोरी// पथ सर्वर पर URL का पथ है
पथ डोरी// रॉपाथ मूल है,
// URL का एन्कोडेड पथ
रॉपाथ डोरी// ForceQuery इंगित करता है कि URL में क्वेरी स्ट्रिंग शामिल होनी चाहिए या नहीं
// भले ही यह खाली हो
फ़ोर्सक्वेरी बूल// रॉक्वेरी मूल है,
// URL की एन्कोडेड क्वेरी स्ट्रिंग
रॉक्वेरी डोरी// फ़्रैगमेंट URL का फ़्रैगमेंट आइडेंटिफ़ायर है,
// किसी पृष्ठ पर किसी विशिष्ट तत्व से लिंक करने के लिए उपयोग किया जाता है
टुकड़ा डोरी
// रॉफ्रैगमेंट मूल है,
// URL का एन्कोडेड फ़्रैगमेंट आइडेंटिफ़ायर
कच्चा टुकड़ा डोरी
}
के विभिन्न भागों तक पहुँचने का तरीका जानना यूआरएल सत्यापन जैसे कार्यों के लिए संरचना उपयोगी हो सकती है।
पार्स फ़ंक्शन का उपयोग करके URL पार्स करना
पार्स का कार्य यूआरएल पैकेज अलग-अलग घटकों में URL स्ट्रिंग्स को पार्स करने की कार्यक्षमता प्रदान करता है। पार्स फ़ंक्शन एक URL को एक तर्क के रूप में लेता है और इसके लिए एक सूचक लौटाता है यूआरएल। यूआरएल URL के पार्स किए गए डेटा और एक त्रुटि प्रकार वाली संरचना।
यहां बताया गया है कि आप कैसे उपयोग कर सकते हैं पार्स URL के तत्वों को पुनः प्राप्त करने का कार्य।
आयात (
"एफएमटी"
"नेट/यूआरएल"
)समारोहमुख्य() {
// वह URL जिसे आप पार्स करना चाहते हैं
उदाहरण यूआरएल: = " https://www.example.com/path? परम1=मूल्य1&परम2=मान2"// यूआरएल पार्स करें
पार्स किया गया URL, त्रुटि: = url. पार्स (उदाहरणURL)अगर गलती! = शून्य {
fmt. प्रिंट्लन (इरेट)
वापस करना
}
// URL के सभी क्षेत्रों को प्रिंट करें
fmt. प्रिंटलन("योजना:", पार्स किया गयाURL.स्कीम)
fmt. प्रिंटलन("अस्पष्ट:", पार्स किया गयाURL.Opaque)
fmt. प्रिंटलन("उपयोगकर्ता:", पार्स किया गयाURL.उपयोगकर्ता)
fmt. प्रिंटलन("मेज़बान:", पार्स किया गयाURL.Host)
fmt. प्रिंटलन("पथ:", पार्स किया गयाURL.Path)
fmt. प्रिंटलन("रॉपाथ:", पार्स किया गयाURL.RawPath)
fmt. प्रिंटलन("फोर्सक्वेरी:", पार्स किया गयाURL.ForceQuery)
fmt. प्रिंटलन("रॉक्वेरी:", पार्स किया गयाURL.RawQuery)
fmt. प्रिंटलन("टुकड़ा:", पार्स किया गयाURL.Fragment)
fmt. प्रिंटलन("रॉफ्रैगमेंट:", पार्स किया गयाURL.RawFragment)
}
exampleURL वेरिएबल पूर्ण, अनपार्स्ड URL को होल्ड करता है, और पार्स फ़ंक्शन की सामग्री को पार्स करता है exampleURL चर और पार्स किए गए URL को लौटाता है। कॉल की एक श्रृंखला के साथ कार्यक्रम समाप्त होता है Println के व्यक्तिगत क्षेत्रों को प्रदर्शित करने के लिए यूआरएल संरचना।
पार्स फ़ंक्शन यह जांच नहीं करता है कि क्या कोई URL वास्तविक है जो वास्तव में मौजूद है, यह केवल URL को सिंटैक्टिक रूप से पार्स करता है। आप उपयोग कर सकते हैं एचटीटीपी पैकेट URL के लिए GET अनुरोध करने और प्रतिक्रिया की जाँच करने के लिए:
आयात (
"एफएमटी"
"नेट/एचटीटीपी"
)समारोहमुख्य() {
// वह यूआरएल जिसे आप जांचना चाहते हैं
उदाहरण यूआरएल: = " https://www.example.com"// URL के लिए HTTP GET अनुरोध करें
प्रतिक्रिया, त्रुटि: = http. प्राप्त करें (उदाहरणURL)अगर गलती! = शून्य {
fmt. प्रिंट्लन (इरेट)
वापस करना
}
आस्थगित करें जवाब। शरीर। बंद करना()
// प्रतिक्रिया स्थिति कोड की जाँच करें
अगर जवाब। स्टेटसकोड == http। स्थितिठीक {
fmt. प्रिंटलन("यूआरएल मौजूद है।")
} अन्य {
fmt. प्रिंटलन("यूआरएल मौजूद नहीं है।")
}
}
मुख्य समारोह बनाता है पाना से अनुरोध exampleURL का उपयोग पाना का कार्य एचटीटीपी पैकेट। वह फ़ंक्शन एक प्रतिक्रिया उदाहरण और त्रुटि प्रकार देता है। कार्यक्रम एक के साथ समाप्त होता है अगर जाँच कर वेबसाइट के अस्तित्व को मान्य करने के लिए बयान HTTP स्थिति कोड के खिलाफ स्थिति ठीक है से लगातार एचटीटीपी पैकेट।
यह दृष्टिकोण आपको चेक के परिणाम के आधार पर कार्रवाई करने की अनुमति देता है, जैसे कि पुनर्निर्देशन उपयोगकर्ता को एक अलग पृष्ठ पर, एक त्रुटि संदेश प्रदर्शित करना, या एक निश्चित के बाद अनुरोध का पुनः प्रयास करना अवधि।
एन्कोडिंग और डिकोडिंग URL पैरामीटर
यूआरएल पैकेज प्रदान करता है एन्कोड यूआरएल पैरामीटर एन्कोडिंग के लिए विधि। एन्कोड फ़ंक्शन प्रतिशत-विशेष वर्णों और URL पैरामीटर में रिक्त स्थान को एन्कोड करता है।
आयात (
"एफएमटी"
"नेट/यूआरएल"
)समारोहमुख्य() {
// एक नया यूआरएल बनाएं। मान संरचना
पैराम्स := url. मान{}// संरचना में मान जोड़ें
params. जोड़ना("नाम", "जॉन स्मिथ")
params. जोड़ना("आयु", "30")
params. जोड़ना("लिंग", "नर")// संरचना को एक स्ट्रिंग में एन्कोड करें
एन्कोडेड पैराम्स: = पैराम्स. सांकेतिक शब्दों में बदलना ()
fmt. Println (एन्कोडेड पैराम्स)
// आउटपुट: "आयु = 30 और लिंग = पुरुष और नाम = जॉन + स्मिथ"
}
मुख्य समारोह एक नया बनाता है मान संरचना उदाहरण यूआरएल पैकेज, और जोड़ना स्ट्रक्चर इंस्टेंस की विधि स्ट्रक्चर इंस्टेंस में डेटा के कुंजी-मूल्य जोड़े जोड़ती है।
एन्कोड विधि की-वैल्यू पेयर को URL स्ट्रिंग फॉर्मेट "की1=वैल्यू1&की2=वैल्यू2&की3=वैल्यू3" में कनवर्ट करती है।
आप एक एन्कोडेड यूआरएल स्ट्रिंग को डीकोड कर सकते हैं ParseQuery का कार्य यूआरएल पैकेट।
आयात (
"एफएमटी"
"नेट/यूआरएल"
)समारोहमुख्य() {
// URL पैरामीटर की एन्कोडेड स्ट्रिंग
एन्कोडेड पैराम्स: = "उम्र=30&लिंग=पुरुष&नाम=जॉन+स्मिथ"
// एन्कोडेड स्ट्रिंग को यूआरएल में पार्स करें। मान संरचना
पैराम्स, इरेट: = यूआरएल। ParseQuery (एन्कोडेड पैराम्स)
अगर गलती! = शून्य {
fmt. प्रिंट्लन (इरेट)
}
// स्ट्रक्चर प्रिंट करें
fmt. Println (पैराम्स)
// आउटपुट: नक्शा [आयु: [30] लिंग: [पुरुष] नाम: [जॉन स्मिथ]]
}
एन्कोडेड पैरामीटर चर एक एन्कोडेड URL स्ट्रिंग है। ParseQuery समारोह में लेता है एन्कोडेड पैरामीटर चर और डिकोड किए गए URL स्ट्रिंग और एक त्रुटि देता है।
ये गो पैकेज आपके वेब रूटिंग गेम को अगले स्तर तक ले जा सकते हैं
आपके द्वारा अपने वेब एप्लिकेशन के पृष्ठों के लिए उपयोग किए जाने वाले URL इसके प्रदर्शन और खोज इंजन पर दृश्यता में योगदान करते हैं। वेब रूटिंग URL के आधार पर आने वाले अनुरोधों को उचित हैंडलर फ़ंक्शन पर निर्देशित करने की प्रक्रिया है।
आप http पैकेज या लोकप्रिय तृतीय-पक्ष पैकेज जैसे Gorilla Mux, Chi, Pat, या Httpprouter का उपयोग करके रूट कर सकते हैं। ये पैकेज http पैकेज की तुलना में इसकी कुछ जटिलताओं को दूर करके रूटिंग को आसान बनाते हैं।