ইউআরএল পরামিতি এবং ক্যোয়ারী স্ট্রিংগুলির মধ্যে পার্থক্য কী?


91

আমি ইউআরএলে প্যারামিটার এবং ক্যোয়ারী স্ট্রিংগুলির মধ্যে অনেক পার্থক্য দেখতে পাচ্ছি না। সুতরাং পার্থক্য কী এবং যখন অন্যটির উপরে ব্যবহার করা উচিত?


4
আপনার কি একটি প্রসঙ্গ আছে, কারণ যতদূর আমি জানি তখন সাধারণত দুটি একই জন্য ব্যবহৃত হয় - তবে আপনার ক্ষেত্রে প্রসঙ্গ নির্দিষ্ট হতে পারে।
অ্যালান এস হানসেন

আমার একটি নির্দিষ্ট প্রসঙ্গ নেই, এটি একটি সাধারণ প্রশ্ন। কোন ক্ষেত্রে আমার অন্যটির পরিবর্তে এক উপায় ব্যবহার করা উচিত। এই দুটি ব্যবহারের অবশ্যই আলাদা আলাদা ব্যবহার থাকতে হবে।
কনস্ট

ব্যক্তিগতভাবে - আমি প্রায়শই প্যারামিটার শব্দটি ব্যবহার করি যখন কোনও পরিবর্তনশীল বা পদ্ধতি কল প্রসঙ্গে তাদের সম্পর্কে নেওয়া এবং URL প্রসঙ্গে তাদের সম্পর্কে কথা বলার সময় ক্যোয়ারী স্ট্রিং ব্যবহার করি। (উদাহরণস্বরূপ: ক্যোরি স্ট্রিংটি পদ্ধতির জন্য পরামিতিগুলিতে বিভক্ত)। তবে এটি কেবলমাত্র ভাষা তাই প্রসঙ্গে এবং পরিস্থিতিগুলি পৃথক হয় এবং আমি সন্দেহ করি যে আপনি যখন এর মতো "বোধ করেন" তখন যে কোনও একটি ব্যবহার করার জন্য আপনাকে কেউ শিকার করবে :)
অ্যালান এস হানসেন

উত্তর:


84

ক্যোয়ারী উপাদান প্রথম দ্বারা নির্দেশিত হয় ?কোনো 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 ইউআরআই মানক পথের উপাদান সম্পর্কে বলে :

[…] সেমিকোলন (";") এবং সমান ("=") সংরক্ষিত অক্ষরগুলি প্রায়শই সেগমেন্টে প্রযোজ্য পরামিতি এবং পরামিতি মানগুলি ব্যবহার করতে ব্যবহৃত হয়। কমা (",") সংরক্ষিত অক্ষরটি প্রায়শই একই উদ্দেশ্যে ব্যবহৃত হয়।


4
প্যারামিটার এবং ক্যোয়ারী আলাদা। বিভাগে দেখুন 3.3 এবং 3.4 tools.ietf.org/html/rfc2396.html
cowlinator

@ অ্যাডক্লিনেটর: (আরএফসি 2396 অপ্রচলিত, তবে বর্তমান স্ট্যান্ডার্ড, আরএফসি 3986, পথের উপাদানগুলির পরামিতিগুলির সম্পর্কে অনুরূপ কিছু বলেছে )। আমি বলিনি যে এগুলি একই, নাকি আমি করেছি? ইউআরআই লেখকেরা ক্যোয়ারী উপাদানগুলিতে প্যারামিটারগুলি নির্দিষ্ট করতে পারে (আমার উত্তর হিসাবে বর্ণিত হয়েছে), এবং তারা পথের উপাদানগুলিতে প্যারামিটারগুলিও নির্দিষ্ট করতে পারে (আপনার রেফারেন্সে বর্ণিত হিসাবে) - উভয় ক্ষেত্রে এটি কেবল একটি সম্মেলন, স্ট্যান্ডার্ড সংজ্ঞায়িত করে এমন কিছুই নয়। - আপনি কি আমার উত্তরে পরিবর্তন চান? আপনি কি ভাবেন যে ওপি মানে পথের পরামিতিগুলি?
আনার

30

প্যারামিটারগুলি মূল-মূল জুটি যা 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

সূত্র:

প্রতিটি বিকাশকারীকে ইউআরএল সম্পর্কে কী জানা উচিত

আরএফসি 3986

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.