কিছু অক্ষর 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 ব্যবহার |
|---|---|---|
| বর্ণসাংখ্যিক | a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 | টেক্সট স্ট্রিং, স্কিম ব্যবহার (http), পোর্ট (8080) ইত্যাদি। |
| রিজার্ভ করা নেই | - _ . ~ | টেক্সট স্ট্রিং |
| রিজার্ভ করা | ! * ' ( ) ; : @ & = + $ , / ? % # [ ] | কন্ট্রোল ক্যারেক্টার এবং/অথবা টেক্সট স্ট্রিং |
সঠিক URL তৈরি করার সময়, আপনাকে নিশ্চিত করতে হবে যে এতে শুধুমাত্র টেবিলে দেখানো অক্ষরগুলিই রয়েছে। এই সেট অফ ক্যারেক্টার ব্যবহার করার জন্য URL কনফর্ম করলে সাধারণত দুটি সমস্যা দেখা দেয়, একটি হল বাদ দেওয়া এবং অপরটি হল প্রতিস্থাপন করা:
- আপনি যেসব অক্ষর হ্যান্ডেল করতে চান সেগুলি উপরের সেটের
বাইরে আছে। যেমন, বিদেশি ভাষার অক্ষর
যেমন
上海+中國-কে উপরের অক্ষর ব্যবহার করে এনকোড করতে হবে। জনপ্রিয় প্রথা অনুযায়ী, স্পেস (যা URL-এর মধ্যে অনুমোদিত নয়) প্রায়ই প্লাস'+'অক্ষর ব্যবহার করেও দেখানো হয়। - উপরে উল্লিখিত সেটে সংরক্ষিত অক্ষর হিসেবে অক্ষরগুলি রয়েছে,
তবে এগুলি আক্ষরিক অর্থে ব্যবহার করতে হবে।
যেমন, কোয়েরি স্ট্রিংয়ের শুরু বোঝাতে URL-এর মধ্যে
?ব্যবহার করা হয়; আপনি যদি "? and the 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 কনভার্ট করা কখনও কখনও কঠিন হয়। যেমন, কোনও ব্যবহারকারী "5th&Main St." হিসেবে ঠিকানা লিখতে পারেন। সাধারণত, আপনার URL-এর বিভিন্ন অংশ থেকে URL তৈরি করা উচিত, ব্যবহারকারীর ইনপুটকে আক্ষরিক অক্ষর হিসেবে বিবেচনা করা উচিত।
এছাড়াও, সব Google Maps Platform ওয়েব পরিষেবা ও স্ট্যাটিক ওয়েব API-এর জন্য URL-এর দৈর্ঘ্য ১৬৩৮৪ অক্ষরের মধ্যে সীমিত। অধিকাংশ পরিষেবার ক্ষেত্রে, এই অক্ষর সীমা খুব কমই ব্যবহার করা হবে। তবে, মনে রাখবেন যে নির্দিষ্ট কিছু পরিষেবায় একাধিক প্যারামিটার থাকে যার ফলে URL দীর্ঘ হতে পারে।