URL এনকোডিং

কিছু অক্ষর একটি URL-এর অংশ হতে পারে না (উদাহরণস্বরূপ, স্পেস) এবং কিছু অন্যান্য অক্ষরের একটি URL-এ একটি বিশেষ অর্থ থাকে। HTML ফর্মগুলিতে, = অক্ষরটি একটি নামকে একটি মান থেকে আলাদা করতে ব্যবহৃত হয়। URI জেনেরিক সিনট্যাক্স এই সমস্যাটি মোকাবেলা করার জন্য URL এনকোডিং ব্যবহার করে, যখন HTML ফর্মগুলি এই ধরণের সমস্ত অক্ষরের জন্য শতাংশ এনকোডিং প্রয়োগ করার পরিবর্তে কিছু অতিরিক্ত প্রতিস্থাপন করে।

উদাহরণস্বরূপ, একটি স্ট্রিং-এর মধ্যে স্পেসগুলি হয় %20 দিয়ে এনকোড করা হয় অথবা প্লাস চিহ্ন ( + ) দিয়ে প্রতিস্থাপিত হয়। যদি আপনি একটি পাইপ অক্ষর ( | ) কে বিভাজক হিসেবে ব্যবহার করেন, তাহলে পাইপটিকে %7C হিসাবে এনকোড করতে ভুলবেন না। একটি স্ট্রিং-এর একটি কমা %2C হিসাবে এনকোড করা উচিত।

আপনার প্ল্যাটফর্মের জন্য URL গুলি সঠিকভাবে এস্কেপ করা হয়েছে কিনা তা নিশ্চিত করার জন্য, আপনার URL গুলি স্বয়ংক্রিয়ভাবে এনকোড করার জন্য আপনার প্ল্যাটফর্মের স্বাভাবিক URL বিল্ডিং লাইব্রেরি ব্যবহার করার পরামর্শ দেওয়া হচ্ছে।

একটি বৈধ URL তৈরি করা হচ্ছে

আপনি হয়তো ভাবতে পারেন যে "বৈধ" URL স্বতঃসিদ্ধ, কিন্তু ব্যাপারটা মোটেও তা নয়। উদাহরণস্বরূপ, ব্রাউজারের ঠিকানা বারের মধ্যে প্রবেশ করানো একটি URL-এ বিশেষ অক্ষর থাকতে পারে (যেমন "上海+中國" ); ট্রান্সমিশনের আগে ব্রাউজারকে অভ্যন্তরীণভাবে সেই অক্ষরগুলিকে একটি ভিন্ন এনকোডিংয়ে অনুবাদ করতে হবে। একইভাবে, UTF-8 ইনপুট তৈরি করে বা গ্রহণ করে এমন যেকোনো কোড UTF-8 অক্ষরযুক্ত URLগুলিকে "বৈধ" হিসাবে বিবেচনা করতে পারে, তবে ওয়েব সার্ভারে পাঠানোর আগে সেই অক্ষরগুলিকে অনুবাদ করতে হবে। এই প্রক্রিয়াটিকে URL-এনকোডিং বা শতাংশ-এনকোডিং বলা হয়।

বিশেষ অক্ষর

আমাদের বিশেষ অক্ষর অনুবাদ করতে হবে কারণ সমস্ত URL-কে ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (URI) স্পেসিফিকেশন দ্বারা নির্দিষ্ট সিনট্যাক্স মেনে চলতে হবে। বাস্তবে, এর অর্থ হল URL-গুলিতে শুধুমাত্র ASCII অক্ষরের একটি বিশেষ উপসেট থাকতে হবে: পরিচিত বর্ণানুক্রমিক প্রতীক এবং URL-এর মধ্যে নিয়ন্ত্রণ অক্ষর হিসাবে ব্যবহারের জন্য কিছু সংরক্ষিত অক্ষর। এই সারণীতে এই অক্ষরগুলির সারসংক্ষেপ দেওয়া হয়েছে:

বৈধ URL অক্ষরের সারাংশ
সেট অক্ষর URL ব্যবহার
বর্ণানুক্রমিক abcdefghijklm nopqrstuvwxyz ABCDEFGHIJKLM NOPQRSTUVWXYZ 0 1 2 3 4 5 6 7 8 9 টেক্সট স্ট্রিং, স্কিমের ব্যবহার ( http ), পোর্ট ( 8080 ), ইত্যাদি।
অসংরক্ষিত - _ . ~ টেক্সট স্ট্রিং
সংরক্ষিত ! * ' ( ) ; : @ & = + $ , / ? % # [ ] অক্ষর এবং/অথবা টেক্সট স্ট্রিং নিয়ন্ত্রণ করুন

একটি বৈধ URL তৈরি করার সময়, আপনাকে অবশ্যই নিশ্চিত করতে হবে যে এতে কেবল টেবিলে দেখানো অক্ষরগুলি রয়েছে। এই অক্ষরগুলির সেট ব্যবহার করে একটি URL তৈরি করলে সাধারণত দুটি সমস্যা দেখা দেয়, একটি বাদ দেওয়া এবং একটি প্রতিস্থাপন:

  • আপনি যে অক্ষরগুলি পরিচালনা করতে চান সেগুলি উপরের সেটের বাইরেও বিদ্যমান। উদাহরণস্বরূপ,上海+中國এর মতো বিদেশী ভাষার অক্ষরগুলিকে উপরের অক্ষরগুলি ব্যবহার করে এনকোড করা প্রয়োজন। জনপ্রিয় রীতি অনুসারে, স্পেসগুলি (যা URL-এর মধ্যে অনুমোদিত নয়) প্রায়শই প্লাস '+' অক্ষর ব্যবহার করেও উপস্থাপন করা হয়।
  • উপরের সেটের মধ্যে অক্ষরগুলি সংরক্ষিত অক্ষর হিসাবে বিদ্যমান, কিন্তু আক্ষরিক অর্থে ব্যবহার করা প্রয়োজন। উদাহরণস্বরূপ, ? URL গুলির মধ্যে কোয়েরি স্ট্রিংয়ের শুরু নির্দেশ করার জন্য ব্যবহৃত হয়; যদি আপনি "? এবং Mysterions" স্ট্রিং ব্যবহার করতে চান, তাহলে আপনাকে '?' অক্ষরটি এনকোড করতে হবে।

URL-এনকোড করা সমস্ত অক্ষর একটি '%' অক্ষর এবং তাদের UTF-8 অক্ষরের সাথে সম্পর্কিত একটি দুই-অক্ষরের হেক্স মান ব্যবহার করে এনকোড করা হয়। উদাহরণস্বরূপ, UTF-8-এ上海+中國URL-এনকোড করা হবে %E4%B8%8A%E6%B5%B7%2B%E4%B8%AD%E5%9C%8B হিসাবে। স্ট্রিং ? and the Mysterians URL-এনকোড করা হবে %3F+and+the+Mysterians অথবা %3F%20and%20the%20Mysterians

সাধারণ অক্ষর যাদের এনকোডিং প্রয়োজন

কিছু সাধারণ অক্ষর যা এনকোড করা আবশ্যক:

অনিরাপদ চরিত্র এনকোড করা মান
স্থান %20
" %22
<> %3C
> %3E
# %23
% %25
| %7C

ব্যবহারকারীর ইনপুট থেকে প্রাপ্ত URL রূপান্তর করা কখনও কখনও জটিল। উদাহরণস্বরূপ, একজন ব্যবহারকারী "৫ম এবং প্রধান রাস্তা" হিসাবে একটি ঠিকানা লিখতে পারেন। সাধারণত, আপনার URL এর অংশগুলি থেকে তৈরি করা উচিত, যেকোনো ব্যবহারকারীর ইনপুটকে আক্ষরিক অক্ষর হিসাবে বিবেচনা করা উচিত।

অতিরিক্তভাবে, সমস্ত Google Maps প্ল্যাটফর্ম ওয়েব পরিষেবা এবং স্ট্যাটিক ওয়েব API-এর জন্য URL গুলি ১৬৩৮৪ অক্ষরের মধ্যে সীমাবদ্ধ। বেশিরভাগ পরিষেবার ক্ষেত্রে, এই অক্ষর সীমা খুব কমই পূরণ করা হবে। তবে, মনে রাখবেন যে কিছু পরিষেবার বেশ কয়েকটি প্যারামিটার রয়েছে যার ফলে URL দীর্ঘ হতে পারে।

,

কিছু অক্ষর একটি URL-এর অংশ হতে পারে না (উদাহরণস্বরূপ, স্পেস) এবং কিছু অন্যান্য অক্ষরের একটি URL-এ একটি বিশেষ অর্থ থাকে। HTML ফর্মগুলিতে, = অক্ষরটি একটি নামকে একটি মান থেকে আলাদা করতে ব্যবহৃত হয়। URI জেনেরিক সিনট্যাক্স এই সমস্যাটি মোকাবেলা করার জন্য URL এনকোডিং ব্যবহার করে, যখন HTML ফর্মগুলি এই ধরণের সমস্ত অক্ষরের জন্য শতাংশ এনকোডিং প্রয়োগ করার পরিবর্তে কিছু অতিরিক্ত প্রতিস্থাপন করে।

উদাহরণস্বরূপ, একটি স্ট্রিং-এর মধ্যে স্পেসগুলি হয় %20 দিয়ে এনকোড করা হয় অথবা প্লাস চিহ্ন ( + ) দিয়ে প্রতিস্থাপিত হয়। যদি আপনি একটি পাইপ অক্ষর ( | ) কে বিভাজক হিসেবে ব্যবহার করেন, তাহলে পাইপটিকে %7C হিসাবে এনকোড করতে ভুলবেন না। একটি স্ট্রিং-এর একটি কমা %2C হিসাবে এনকোড করা উচিত।

আপনার প্ল্যাটফর্মের জন্য URL গুলি সঠিকভাবে এস্কেপ করা হয়েছে কিনা তা নিশ্চিত করার জন্য, আপনার URL গুলি স্বয়ংক্রিয়ভাবে এনকোড করার জন্য আপনার প্ল্যাটফর্মের স্বাভাবিক URL বিল্ডিং লাইব্রেরি ব্যবহার করার পরামর্শ দেওয়া হচ্ছে।

একটি বৈধ URL তৈরি করা হচ্ছে

আপনি হয়তো ভাবতে পারেন যে "বৈধ" URL স্বতঃসিদ্ধ, কিন্তু ব্যাপারটা মোটেও তা নয়। উদাহরণস্বরূপ, ব্রাউজারের ঠিকানা বারের মধ্যে প্রবেশ করানো একটি URL-এ বিশেষ অক্ষর থাকতে পারে (যেমন "上海+中國" ); ট্রান্সমিশনের আগে ব্রাউজারকে অভ্যন্তরীণভাবে সেই অক্ষরগুলিকে একটি ভিন্ন এনকোডিংয়ে অনুবাদ করতে হবে। একইভাবে, UTF-8 ইনপুট তৈরি করে বা গ্রহণ করে এমন যেকোনো কোড UTF-8 অক্ষরযুক্ত URLগুলিকে "বৈধ" হিসাবে বিবেচনা করতে পারে, তবে ওয়েব সার্ভারে পাঠানোর আগে সেই অক্ষরগুলিকে অনুবাদ করতে হবে। এই প্রক্রিয়াটিকে URL-এনকোডিং বা শতাংশ-এনকোডিং বলা হয়।

বিশেষ অক্ষর

আমাদের বিশেষ অক্ষর অনুবাদ করতে হবে কারণ সমস্ত URL-কে ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (URI) স্পেসিফিকেশন দ্বারা নির্দিষ্ট সিনট্যাক্স মেনে চলতে হবে। বাস্তবে, এর অর্থ হল URL-গুলিতে শুধুমাত্র ASCII অক্ষরের একটি বিশেষ উপসেট থাকতে হবে: পরিচিত বর্ণানুক্রমিক প্রতীক এবং URL-এর মধ্যে নিয়ন্ত্রণ অক্ষর হিসাবে ব্যবহারের জন্য কিছু সংরক্ষিত অক্ষর। এই সারণীতে এই অক্ষরগুলির সারসংক্ষেপ দেওয়া হয়েছে:

সেট অক্ষর URL ব্যবহার
বর্ণানুক্রমিক abcdefghijklm nopqrstuvwxyz ABCDEFGHIJKLM NOPQRSTUVWXYZ 0 1 2 3 4 5 6 7 8 9 টেক্সট স্ট্রিং, স্কিমের ব্যবহার ( http ), পোর্ট ( 8080 ), ইত্যাদি।
অসংরক্ষিত - _ . ~ টেক্সট স্ট্রিং
সংরক্ষিত ! * ' ( ) ; : @ & = + $ , / ? % # [ ] অক্ষর এবং/অথবা টেক্সট স্ট্রিং নিয়ন্ত্রণ করুন

একটি বৈধ URL তৈরি করার সময়, আপনাকে অবশ্যই নিশ্চিত করতে হবে যে এতে কেবল টেবিলে দেখানো অক্ষরগুলি রয়েছে। এই অক্ষরগুলির সেট ব্যবহার করে একটি URL তৈরি করলে সাধারণত দুটি সমস্যা দেখা দেয়, একটি বাদ দেওয়া এবং একটি প্রতিস্থাপন:

  • আপনি যে অক্ষরগুলি পরিচালনা করতে চান সেগুলি উপরের সেটের বাইরেও বিদ্যমান। উদাহরণস্বরূপ,上海+中國এর মতো বিদেশী ভাষার অক্ষরগুলিকে উপরের অক্ষরগুলি ব্যবহার করে এনকোড করা প্রয়োজন। জনপ্রিয় রীতি অনুসারে, স্পেসগুলি (যা URL-এর মধ্যে অনুমোদিত নয়) প্রায়শই প্লাস '+' অক্ষর ব্যবহার করেও উপস্থাপন করা হয়।
  • উপরের সেটের মধ্যে অক্ষরগুলি সংরক্ষিত অক্ষর হিসাবে বিদ্যমান, কিন্তু আক্ষরিক অর্থে ব্যবহার করা প্রয়োজন। উদাহরণস্বরূপ, ? URL গুলির মধ্যে কোয়েরি স্ট্রিংয়ের শুরু নির্দেশ করার জন্য ব্যবহৃত হয়; যদি আপনি "? এবং Mysterions" স্ট্রিং ব্যবহার করতে চান, তাহলে আপনাকে '?' অক্ষরটি এনকোড করতে হবে।

URL-এনকোড করা সমস্ত অক্ষর একটি '%' অক্ষর এবং তাদের UTF-8 অক্ষরের সাথে সম্পর্কিত একটি দুই-অক্ষরের হেক্স মান ব্যবহার করে এনকোড করা হয়। উদাহরণস্বরূপ, UTF-8-এ上海+中國URL-এনকোড করা হবে %E4%B8%8A%E6%B5%B7%2B%E4%B8%AD%E5%9C%8B হিসাবে। স্ট্রিং ? and the Mysterians URL-এনকোড করা হবে %3F+and+the+Mysterians অথবা %3F%20and%20the%20Mysterians

সাধারণ অক্ষর যাদের এনকোডিং প্রয়োজন

কিছু সাধারণ অক্ষর যা এনকোড করা আবশ্যক:

অনিরাপদ চরিত্র এনকোড করা মান
স্থান %20
" %22
<> %3C
> %3E
# %23
% %25
| %7C

ব্যবহারকারীর ইনপুট থেকে প্রাপ্ত URL রূপান্তর করা কখনও কখনও জটিল। উদাহরণস্বরূপ, একজন ব্যবহারকারী "৫ম এবং প্রধান রাস্তা" হিসাবে একটি ঠিকানা লিখতে পারেন। সাধারণত, আপনার URL এর অংশগুলি থেকে তৈরি করা উচিত, যেকোনো ব্যবহারকারীর ইনপুটকে আক্ষরিক অক্ষর হিসাবে বিবেচনা করা উচিত।

অতিরিক্তভাবে, সমস্ত Google Maps প্ল্যাটফর্ম ওয়েব পরিষেবা এবং স্ট্যাটিক ওয়েব API-এর জন্য URL গুলি ১৬৩৮৪ অক্ষরের মধ্যে সীমাবদ্ধ। বেশিরভাগ পরিষেবার ক্ষেত্রে, এই অক্ষর সীমা খুব কমই পূরণ করা হবে। তবে, মনে রাখবেন যে কিছু পরিষেবার বেশ কয়েকটি প্যারামিটার রয়েছে যার ফলে URL দীর্ঘ হতে পারে।