আমি ইউআরএলে প্যারামিটার এবং ক্যোয়ারী স্ট্রিংগুলির মধ্যে অনেক পার্থক্য দেখতে পাচ্ছি না। সুতরাং পার্থক্য কী এবং যখন অন্যটির উপরে ব্যবহার করা উচিত?
আমি ইউআরএলে প্যারামিটার এবং ক্যোয়ারী স্ট্রিংগুলির মধ্যে অনেক পার্থক্য দেখতে পাচ্ছি না। সুতরাং পার্থক্য কী এবং যখন অন্যটির উপরে ব্যবহার করা উচিত?
উত্তর:
ক্যোয়ারী উপাদান প্রথম দ্বারা নির্দেশিত হয় ?কোনো URI হবে। "ক্যোরি স্ট্রিং" একটি প্রতিশব্দ হতে পারে (এই শব্দটি ইউআরআই মান হিসাবে ব্যবহৃত হয় না)।
কোয়েরি উপাদানগুলির সাথে HTTP ইউআরআইয়ের জন্য কয়েকটি উদাহরণ:
http://example.com/foo?bar
http://example.com/foo/foo/foo?bar/bar/bar
http://example.com/?bar
http://example.com/?@bar._=???/1:
http://example.com/?bar1=a&bar2=b
( ক্যোরি উপাদানটিতে অনুমোদিত অক্ষরের তালিকা )
ক্যোরির উপাদানটির "ফর্ম্যাট "টি ইউআরআই লেখকদের উপর নির্ভর করে। একটি সাধারণ কনভেনশন ( তবে ইউআরআই মান হিসাবে যতটা কনভেনশন ছাড়া আর কিছুই নয় ) হ'ল কী-মান জোড়ার জন্য ক্যোয়ারী উপাদানটি ব্যবহার করা হয় aka পরামিতি , উপরোক্ত গত উদাহরণে পছন্দ: bar1=a&bar2=b।
এই জাতীয় প্যারামিটারগুলি অন্যান্য ইউআরআই উপাদানগুলিতেও দেখা যায়, যেমন, পথ এবং খণ্ড। যতদূর ইউআরআই স্ট্যান্ডার্ড সম্পর্কিত, এটি কোন উপাদান এবং কোন ফর্ম্যাটটি ব্যবহার করবেন তা আপনার বিষয়।
পথ, ক্যোয়ারী এবং খণ্ডে প্যারামিটার সহ ইউআরআই উদাহরণ:
http://example.com/foo;key1=value1?key2=value2#key3=value3
Query ইউআরআই স্ট্যান্ডার্ড কোয়েরি উপাদান সম্পর্কে বলে :
[…] ক্যোয়ারির উপাদানগুলি প্রায়ই "কী = মান" জোড়া আকারে সনাক্তকারী তথ্য বহন করতে ব্যবহৃত হয় […]
U ইউআরআই মানক পথের উপাদান সম্পর্কে বলে :
[…] সেমিকোলন (";") এবং সমান ("=") সংরক্ষিত অক্ষরগুলি প্রায়শই সেগমেন্টে প্রযোজ্য পরামিতি এবং পরামিতি মানগুলি ব্যবহার করতে ব্যবহৃত হয়। কমা (",") সংরক্ষিত অক্ষরটি প্রায়শই একই উদ্দেশ্যে ব্যবহৃত হয়।
প্যারামিটারগুলি মূল-মূল জুটি যা URL পাথের অভ্যন্তরে উপস্থিত হতে পারে এবং সেমিকোলন অক্ষর ( ;) দিয়ে শুরু করতে পারে ।
ক্যোয়ারিং স্ট্রিং পাথের পরে উপস্থিত (যদি থাকে) এবং একটি প্রশ্ন চিহ্ন অক্ষর ( ?) দিয়ে শুরু হয় ।
উভয় পরামিতি এবং ক্যোয়ারী স্ট্রিং-এ মূল-মান জোড়া রয়েছে।
একটি GETঅনুরোধে, প্যারামিটারগুলি URL এ নিজেই উপস্থিত হয়:
<scheme>://<username>:<password>@<host>:<port>/<path>;<parameters>?<query>#<fragment>
একটি POSTঅনুরোধে, প্যারামিটারগুলি URL টি নিজেই উপস্থিত হতে পারে তবে ডেটাস্ট্রিমে (সামগ্রী হিসাবে পরিচিত)।
অনুসন্ধানের স্ট্রিং সর্বদা URL এর একটি অংশ of
form-dataPOST পদ্ধতি ব্যবহার করার সময় প্যারামিটারগুলি ডাস্টাস্ট্রিমে সমাহিত করা যেতে পারে যাতে তারা ইউআরএলে উপস্থিত না হয়। হ্যাঁ একটি POSTঅনুরোধ ফর্ম ডেটা এবং ইউআরএল হিসাবে পরামিতিগুলি সংজ্ঞায়িত করতে পারে এবং এটি অসঙ্গত নয় কারণ প্যারামিটারগুলির কয়েকটি মান থাকতে পারে।
আমি এখনও পর্যন্ত এই আচরণের জন্য কোনও ব্যাখ্যা খুঁজে পাইনি। আমি অনুমান করি যে কোনও সময় কোনও POSTঅনুরোধ থেকে প্যারামিটারগুলি "লুকোচুরি" রাখতে কার্যকর হতে পারে , বা GETঅনুরোধটি পরিচালনা করা কোডটি কোড হ্যান্ডলিংয়ের সাথে কিছু অংশ ভাগ করতে দেয় POST। অবশ্যই এটি কেবলমাত্র ইউআরএলে সার্ভার কোড সমর্থনকারী পরামিতিগুলির সাথে কাজ করতে পারে।
যতক্ষণ না আপনি আরও ভাল অন্তর্দৃষ্টি পান, আমি আপনাকে অনুরোধের form-dataডেটাস্ট্রিমে প্যারামিটারগুলি ব্যবহার করার পরামর্শ দিই POST।
সূত্র: