ইউআরএল এনকোডিং অত্যাবশ্যক যখন একটি ইউআরএল-এ এমন অক্ষর থাকে যেগুলো ইউআরএলের প্রেক্ষাপটে বিশেষ অর্থ থাকতে পারে যেমন স্পেস, অ্যাম্পারস্যান্ড, প্রশ্ন চিহ্ন এবং আরও অনেক কিছু।
এই ধরনের অক্ষরগুলিকে যেমনভাবে প্রেরণ করা হয়েছে তা নিশ্চিত করতে, URL এনকোডিং আমাদেরকে তাদের মানগুলিতে উপস্থাপন করার একটি উপায় প্রদান করে যা ক্লায়েন্ট সাইড বা সার্ভার-সাইড অ্যাপ্লিকেশন দ্বারা পড়তে পারে।
এই টিউটোরিয়ালে, আমরা শিখব কিভাবে গো স্ট্যান্ডার্ড লাইব্রেরিতে দেওয়া নেট/ইউআরএল প্যাকেজ ব্যবহার করে ইউআরএল এনকোডিং এবং ডিকোডিং করা যায়।
ইউআরএল এনকোডিং/ডিকোডিংয়ের ভূমিকা
ইউআরএল এনকোডিং আমাদের বিশেষ অক্ষরগুলিকে শতাংশ-এনকোডেড উপস্থাপনাগুলির সাথে প্রতিস্থাপন করতে দেয় যাতে সেগুলি ওয়েব সার্ভার এবং ব্রাউজারগুলির দ্বারা সঠিকভাবে ব্যাখ্যা করা হয়।
উদাহরণস্বরূপ, URL এনকোডিং নিম্নলিখিত বিশেষ অক্ষরগুলিকে তাদের URL-বান্ধব উপস্থাপনায় রূপান্তরিত করে:
- স্পেস (') '%20' হিসাবে এনকোড করা হয়েছে
- অ্যাম্পারস্যান্ড ('&') '%26' হিসাবে এনকোড করা হয়েছে
- প্রশ্ন চিহ্ন ('?') '%3F' হিসাবে এনকোড করা হয়েছে
ইউআরএল ডিকোডিং, অন্য দিকে, ইউআরএল এনকোডিংকে বিপরীত করার প্রক্রিয়া। এটি একটি ইউআরএল-এনকোডেড স্ট্রিং নেয় এবং এটিকে তার আসল ফর্মে রূপান্তর করে।
গোলং ইউআরএল এনকোডিং
আসুন আমরা মূল বিষয়গুলি দিয়ে শুরু করি এবং বিভিন্ন পদ্ধতি এবং কৌশলগুলি কভার করি যা আমরা Go-তে URL এনকোডিং সম্পাদন করতে ব্যবহার করতে পারি।
পদ্ধতি 1: Url.QueryEscape ব্যবহার করা
প্রথম যে পদ্ধতিটি আমরা ব্যবহার করতে পারি তা হল নেট/ইউআরএল প্যাকেজ থেকে 'QueryEscape' ফাংশন। এটি Go-তে ইউআরএল এনকোডিং করার সবচেয়ে সহজ এবং সবচেয়ে সাধারণ পদ্ধতি।
ফাংশনটি একটি স্ট্রিং নেয় এবং নিম্নলিখিত উদাহরণ কোডে দেখানো স্ট্রিংটির একটি URL-এনকোডেড সংস্করণ প্রদান করে:
প্যাকেজ প্রধানআমদানি (
'fmt'
'নেট/ইউআরএল'
)
ফাংশন প্রধান () {
ইনপুট := 'https://demo.elastic.co/cookie/index.html?goto=/app/apm&action=none'
এনকোড করা := url . QueryEscape ( ইনপুট )
fmt . Println ( এনকোড করা )
}
এই উদাহরণে, আমরা এর থেকে URL রূপান্তর করতে 'QueryEscape' ফাংশন ব্যবহার করি https://demo.elastic.co/cookie/index.html?goto=/app/apm&action=none .
প্রতি:
https % 3A % 2F % 2Fdemo . ইলাস্টিক . সহ % 2Fcookie % 2Findex . html % 3Fgoto % 3D % 2 বাবা % 2Fapm % 26 কর্ম % 3Dnoneআপনি লক্ষ্য করবেন যে এনকোড করা স্ট্রিং-এ, সমস্ত বিশেষ অক্ষর তাদের URL নিরাপদ সমতুল্য রূপান্তরিত হয়েছে।
পদ্ধতি 2: Url.Values ব্যবহার করা
আমরা নেট/ইউআরএল প্যাকেজে “url.Values” ফাংশনটি ব্যবহার করতে পারি একাধিক কী-মান জোড়াকে কোয়েরি স্ট্রিং হিসাবে এনকোড করতে।
ফাংশন স্বয়ংক্রিয়ভাবে প্রতিটি কী এবং মানের জন্য URL এনকোডিং সঞ্চালন করে।
প্যাকেজ প্রধানআমদানি (
'fmt'
'নেট/ইউআরএল'
)
ফাংশন প্রধান () {
মান := url . মূল্যবোধ {}
মান . যোগ করুন ( 'যাও' , '/অ্যাপ/এপিএম' )
মান . যোগ করুন ( 'কর্ম' , 'কোনোটিই' )
এনকোড করা := মান . এনকোড ()
fmt . Println ( এনকোড করা )
}
এই উদাহরণে, আমরা url.Values() ফাংশনটি একটি স্ট্রিং-এ “goto” এবং “action” নামক কী-মান জোড়া এনকোড করতে ব্যবহার করি।
কর্ম = কোনটিই যাও = % বাবা % ফাপমগোলং ইউআরএল ডিকোডিং
ইউআরএল ডিকোডিং একটি সাধারণ কাজ বিশেষ করে যখন Go-তে একটি HTTP ক্লায়েন্ট বা সার্ভার প্রয়োগ করা হয়।
নিচের কয়েকটি সাধারণ কাজ যা আপনি ইউআরএল ডিকোডিং এ ব্যবহার করতে পারেন।
পদ্ধতি 1: Url.QueryUnescape ব্যবহার করা
হ্যাঁ, যেমন একটি ফাংশন আছে. এই ফাংশনটি QueryEscape এর বিপরীত যা আমাদের URL এনকোড করতে দেয়।
ফাংশনটি একটি ইউআরএল-এনকোডেড স্ট্রিং নেয় এবং নিম্নলিখিত উদাহরণে প্রদর্শিত ডিকোডেড সংস্করণটি প্রদান করে:
প্যাকেজ প্রধানআমদানি (
'fmt'
'নেট/ইউআরএল'
)
ফাংশন প্রধান () {
এনকোড করা := 'https%3A%2F%2Fdemo.elastic.co%2Fcookie%2Findex.html%3
Fgoto%3D%2Fapp%2Fapm%26action%3Dnone
ডিকোড করা, ত্রুটি := url.QueryUnescape(এনকোড করা)
যদি ভুল হয়!= শূন্য {
fmt. Println(' ডিকোডিং ত্রুটি৷ : ', ভুল)
ফিরে
}
fmt.Println(ডিকোড করা)
}
এটি নিম্নরূপ ডিকোড করা URL স্ট্রিংটি ফেরত দেবে:
https://demo.elastic.co/cookie/index.html?goto=/app/apm&action=none
পদ্ধতি 2: Url.Values ব্যবহার করা
যদি আমাদের একটি ক্যোয়ারী স্ট্রিং থাকে এবং আমরা এটিকে কী-মান জোড়ায় ডিকোড করতে চাই, তাহলে আমরা 'url.ParseQuery' ফাংশনের সাথে 'url.Values' টাইপ ব্যবহার করতে পারি।
প্যাকেজ প্রধানআমদানি (
'fmt'
'নেট/ইউআরএল'
)
ফাংশন প্রধান () {
queryString := 'ক্রিয়া=কিছুই নয়&goto=%2Fapp%2Fapm'
মান , ভুল := url . পার্সকোয়েরি ( queryString )
যদি ভুল != শূন্য {
fmt . Println ( 'ক্যোয়ারী পার্স করার সময় ত্রুটি:' , ভুল )
ফিরে
}
কর্ম := মান . পাওয়া ( 'কর্ম' )
যাও_ := মান . পাওয়া ( 'যাও' )
fmt . Println ( 'কর্ম:' , কর্ম )
fmt . Println ( 'যাও:' , যাও_ )
}
আউটপুট স্ট্রিং:
কর্ম : কোনটিযাও : / অ্যাপ / এপিএম
উপসংহার
এই টিউটোরিয়ালে, আমরা যতটা সম্ভব দক্ষতার সাথে ইউআরএল এনকোডিং এবং ডিকোডিং সঞ্চালনের জন্য গো ইকোসিস্টেমে নেট/ইউআরএল প্যাকেজ ব্যবহার করার বিষয়ে সমস্ত কিছু শিখেছি।