কিছু অক্ষর একটি URL এর অংশ হতে পারে না (উদাহরণস্বরূপ, স্থান) এবং কিছু অন্যান্য অক্ষর একটি URL এর একটি বিশেষ অর্থ আছে। এইচটিএমএল ফর্মে, অক্ষর =
একটি মান থেকে একটি নাম আলাদা করতে ব্যবহৃত হয়। ইউআরআই জেনেরিক সিনট্যাক্স এই সমস্যাটি মোকাবেলা করার জন্য ইউআরএল এনকোডিং ব্যবহার করে, যখন এইচটিএমএল ফর্মগুলি এই ধরনের সমস্ত অক্ষরের জন্য শতাংশ এনকোডিং প্রয়োগ করার পরিবর্তে কিছু অতিরিক্ত প্রতিস্থাপন করে।
উদাহরণস্বরূপ, একটি স্ট্রিং এর স্পেসগুলি হয় %20
দিয়ে এনকোড করা হয় বা প্লাস চিহ্ন ( +
) দিয়ে প্রতিস্থাপিত হয়। যদি আপনি একটি পাইপ অক্ষর ( |
) একটি বিভাজক হিসাবে ব্যবহার করেন, তাহলে পাইপটিকে %7C
হিসাবে এনকোড করতে ভুলবেন না। একটি স্ট্রিং এর একটি কমা %2C
হিসাবে এনকোড করা উচিত।
আপনার ইউআরএলগুলিকে স্বয়ংক্রিয়ভাবে এনকোড করতে আপনার প্ল্যাটফর্মের স্বাভাবিক ইউআরএল বিল্ডিং লাইব্রেরিগুলি ব্যবহার করার পরামর্শ দেওয়া হচ্ছে, যাতে আপনার প্ল্যাটফর্মের জন্য ইউআরএলগুলি সঠিকভাবে এস্কেপ করা হয়।
একটি বৈধ URL তৈরি করা
আপনি মনে করতে পারেন যে একটি "বৈধ" URL স্ব-প্রকাশ্য, কিন্তু এটি পুরোপুরি ক্ষেত্রে নয়। একটি ব্রাউজারে একটি ঠিকানা বারের মধ্যে প্রবেশ করা একটি URL, উদাহরণস্বরূপ, বিশেষ অক্ষর থাকতে পারে (যেমন "上海+中國"
); ট্রান্সমিশনের আগে ব্রাউজারটিকে সেই অক্ষরগুলিকে একটি ভিন্ন এনকোডিংয়ে অভ্যন্তরীণভাবে অনুবাদ করতে হবে। একই টোকেন দ্বারা, যেকোন কোড যা UTF-8 ইনপুট তৈরি করে বা গ্রহণ করে তা UTF-8 অক্ষর যুক্ত URL গুলিকে "বৈধ" হিসাবে বিবেচনা করতে পারে, তবে একটি ওয়েব সার্ভারে পাঠানোর আগে সেই অক্ষরগুলিকে অনুবাদ করতে হবে৷ এই প্রক্রিয়াটিকে URL-এনকোডিং বা শতাংশ-এনকোডিং বলা হয়।
বিশেষ চরিত্র
আমাদের বিশেষ অক্ষর অনুবাদ করতে হবে কারণ সমস্ত ইউআরএলকে ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (ইউআরআই) স্পেসিফিকেশন দ্বারা নির্দিষ্ট সিনট্যাক্সের সাথে সামঞ্জস্য করতে হবে। বাস্তবে, এর মানে হল যে ইউআরএলগুলিতে ASCII অক্ষরের একটি বিশেষ উপসেট থাকতে হবে: পরিচিত বর্ণসংখ্যার চিহ্ন এবং ইউআরএল-এর মধ্যে নিয়ন্ত্রণ অক্ষর হিসাবে ব্যবহারের জন্য কিছু সংরক্ষিত অক্ষর। এই টেবিলটি এই অক্ষরগুলিকে সংক্ষিপ্ত করে:
সেট | অক্ষর | ইউআরএল ব্যবহার |
---|---|---|
আলফানিউমেরিক | abcdefghijklm nopqrstuvwxyz ABCDEFGHIJKLM NOPQRSTUVWXYZ 0 1 2 3 4 5 6 7 8 9 | টেক্সট স্ট্রিং, স্কিম ব্যবহার ( http ), পোর্ট ( 8080 ), ইত্যাদি। |
অসংরক্ষিত | - _ ~ | টেক্সট স্ট্রিং |
সংরক্ষিত | ! *' (); : @ & = + $ , / ? % # [ ] | অক্ষর এবং/অথবা টেক্সট স্ট্রিং নিয়ন্ত্রণ করুন |
একটি বৈধ URL তৈরি করার সময়, আপনাকে অবশ্যই নিশ্চিত করতে হবে যে এতে কেবলমাত্র টেবিলে দেখানো অক্ষরগুলি রয়েছে৷ অক্ষরের এই সেটটি ব্যবহার করার জন্য একটি ইউআরএল কনফর্ম করলে সাধারণত দুটি সমস্যা দেখা দেয়, একটি বাদ দেওয়া এবং একটি প্রতিস্থাপন:
- আপনি যে অক্ষরগুলি পরিচালনা করতে চান সেগুলি উপরের সেটের বাইরে বিদ্যমান। উদাহরণস্বরূপ,
上海+中國
মতো বিদেশী ভাষার অক্ষরগুলিকে উপরের অক্ষরগুলি ব্যবহার করে এনকোড করা প্রয়োজন৷ জনপ্রিয় নিয়ম অনুসারে, স্পেসগুলি (যা ইউআরএল-এর মধ্যে অনুমোদিত নয়) প্রায়শই প্লাস'+'
অক্ষর ব্যবহার করে উপস্থাপন করা হয়। - সংরক্ষিত অক্ষর হিসাবে উপরের সেটের মধ্যে অক্ষর বিদ্যমান, কিন্তু আক্ষরিকভাবে ব্যবহার করা প্রয়োজন। উদাহরণস্বরূপ
?
ক্যোয়ারী স্ট্রিং এর শুরু নির্দেশ করতে URL-এর মধ্যে ব্যবহার করা হয়; আপনি যদি স্ট্রিং "? এবং The Mysterions" ব্যবহার করতে চান, তাহলে আপনাকে'?'
এনকোড করতে হবে চরিত্র
ইউআরএল-এনকোড করা সমস্ত অক্ষর একটি '%'
অক্ষর এবং তাদের UTF-8 অক্ষরের সাথে সম্পর্কিত একটি দুই-অক্ষরের হেক্স মান ব্যবহার করে এনকোড করা হয়েছে। উদাহরণস্বরূপ, UTF-8-এ上海+中國
%E4%B8%8A%E6%B5%B7%2B%E4%B8%AD%E5%9C%8B
হিসাবে URL-এনকোড করা হবে। স্ট্রিং ? and the Mysterians
%3F+and+the+Mysterians
বা %3F%20and%20the%20Mysterians
হিসাবে ইউআরএল-এনকোড করা হবে।
এনকোডিং প্রয়োজন এমন সাধারণ অক্ষর
কিছু সাধারণ অক্ষর যা এনকোড করা আবশ্যক:
অনিরাপদ চরিত্র | এনকোড করা মান |
---|---|
স্থান | %20 |
" | %22 |
< | %3C |
> | %3E |
# | %23 |
% | %25 |
| | %7C |
আপনি ব্যবহারকারীর ইনপুট থেকে প্রাপ্ত একটি URL রূপান্তর কখনও কখনও চতুর হয়. উদাহরণস্বরূপ, একজন ব্যবহারকারী "5ম এবং প্রধান সেন্ট" হিসাবে একটি ঠিকানা লিখতে পারেন। সাধারণত, আপনার ইউআরএল এর অংশগুলি থেকে তৈরি করা উচিত, যেকোনো ব্যবহারকারীর ইনপুটকে আক্ষরিক অক্ষর হিসাবে বিবেচনা করা উচিত।
উপরন্তু, সমস্ত Google মানচিত্র প্ল্যাটফর্ম ওয়েব পরিষেবা এবং স্ট্যাটিক ওয়েব API-এর জন্য URLগুলি 16384 অক্ষরের মধ্যে সীমাবদ্ধ৷ বেশিরভাগ পরিষেবার জন্য, এই অক্ষর সীমা খুব কমই ব্যবহার করা হবে। যাইহোক, মনে রাখবেন যে কিছু নির্দিষ্ট পরিষেবার বেশ কয়েকটি প্যারামিটার থাকে যার ফলে দীর্ঘ URL হতে পারে।