কোনও ইউআরএল ক্যোয়ারী প্যারামিটারের কোনও মূল্য না থাকলে বৈধ?


138

ইউআরএল কি বৈধের মতো http://example.com/foo?bar?

আমি এমন কোনও আধিকারিকের লিঙ্ক খুঁজছি যা একরকম বা অন্যভাবে বলে। একটি সাধারণ হ্যাঁ / কোনও উত্তর বা উপাখ্যানক প্রমাণ এটি কাটবে না।


3
ইউআরআই আরএফসি ছাড়াও আমি এর প্রকৃত বিশ্বের উদাহরণটি উল্লেখ করতে চাই। ড্রুপাল এই লিঙ্কহীন ক্যোয়ারী প্যারামিটারগুলিকে কিছু লিঙ্কে ক্যাশে বুস্টিংয়ের ফর্ম হিসাবে ব্যবহার করে। যেমন www.google-analytics.com/analytics.js?o490ub বা /themes/seven/ie.css?o4eppb। আপনি সম্ভবত এটি ইতিমধ্যে জানেন তবে এটির জন্য কিছু হোঁচট খাচ্ছে না।
লিন

উত্তর:


103
  • ইউআরআই আরএফসির কাছে বৈধ
  • আপনার সার্ভার-সাইড ফ্রেমওয়ার্ক / কোডটিতে সম্ভবত গ্রহণযোগ্য

কোনো URI জন্য RFC কোয়েরি স্ট্রিং জন্য একটি বিন্যাসে জনাদেশ নেই। যদিও এটি স্বীকৃত যে ক্যোরিয় স্ট্রিংটি প্রায়শই নাম-মান জোড়া বহন করে, তবে এটির প্রয়োজন হয় না (উদাহরণস্বরূপ এটিতে আরও একটি ইউআরআই থাকবে)।

3.4। প্রশ্ন

ক্যোয়ারী উপাদানটিতে অ-শ্রেণিবদ্ধ তথ্য রয়েছে যা পাথ উপাদানগুলির (বিভাগে 3.3) ডেটা সহ, ইউআরআইয়ের স্কিম এবং নামকরণ কর্তৃপক্ষের (যদি থাকে) এর ক্ষেত্রের মধ্যে একটি সংস্থান সনাক্ত করতে পারে। ...

... তবে, কোয়েরি উপাদানগুলি হিসাবে প্রায়ই "কী = মান" জোড়া আকারে সনাক্তকারী তথ্য বহন করতে ব্যবহৃত হয় এবং একটি ঘন ঘন ব্যবহৃত মান অন্য ইউআরআই-র একটি রেফারেন্স হয় ...

এইচটিএমএল প্রতিষ্ঠিত করে যে এইচটিটিপি জিইটি-র মাধ্যমে জমা দেওয়া কোনও ফর্ম "? কী 1 = মান 1 এবং কী 2 = মান 2 ..." (সঠিকভাবে এনকোডেড) ফর্মের নাম-মান জোড়া হিসাবে ফর্মের মানগুলি এনকোড করে। ক্যোয়ারী স্ট্রিংটির বিশ্লেষণ সার্ভার-সাইড কোড (যেমন জাভা সার্লেট ইঞ্জিন) পর্যন্ত।

আপনি কোন সার্ভার-সাইড কাঠামোটি ব্যবহার করেন তা সনাক্ত করতে পারেন না, তবে এটি সম্ভবত আপনার সার্ভার-সাইড ফ্রেমওয়ার্কটি কোয়েরি স্ট্রিংটি সর্বদা নাম-মান জোড়ায় ধরে রাখতে পারে এবং এটি কোনও কোয়েরি স্ট্রিংয়ে চোট নাও পেতে পারে is সেই বিন্যাসে (যেমন ?bar)। যদি এটির নিজস্ব কাস্টম কোডটি ক্যোরি স্ট্রিংটিকে বিশ্লেষণ করে তবে আপনাকে কেবল এই ক্যোয়ারী স্ট্রিং ফর্ম্যাটটি পরিচালনা করেছেন তা নিশ্চিত করতে হবে। যদি এটি একটি কাঠামো হয় তবে আপনার ডকুমেন্টেশনের সাথে পরামর্শ করা বা এটি কীভাবে পরিচালনা করা হয় তা পরীক্ষা করার জন্য এটি প্রয়োজন।


7
এএসপি.নেট এমভিসি (আমার জ্ঞানের 4 ও 5 সংস্করণ) অবশ্যই কোনও গণ্ডগোল করে যখন কোনও মূল্য সরবরাহ করা হয় না :(
এআর

2
isindexজাদু nameHTML5 এর থেকে কী-মান বিন্যাসে ছাড়া একটি কোয়েরি স্ট্রিং পাঠানোর অনুমতি দেয় stackoverflow.com/a/37579004/895245
সিরো Santilli郝海东冠状病六四事件法轮功


79

তারা পুরোপুরি বৈধ। আপনি তাদের ভিড় বার্তাবাহকের পিছনে নিঃশব্দে দাঁড়িয়ে থাকা বড় পেশীবহুল লোকের সমতুল্য হিসাবে বিবেচনা করতে পারেন। লোকটির কোনও নাম নেই এবং কথা বলতে পারে না, তবে তার উপস্থিতি তথ্য জানায়।


19
জনতা পেশীবদ্ধ লোকটির একটি নাম আছে, আপনি কেবল এটি জানেন না। আপনি এটি পরম হিসাবে জানেন এবং এটি মূলত একটি বুলিয়ান মান বহন করে (উপস্থিত, অনুপস্থিত)।
ভ্লাস্যাক

2
এটি বর্ণনা করার সর্বোত্তম উপায় :)
মোহাম্মদ করমানি

1
বড় লোকটির নাম চেচ , স্টার ট্রেকের সেই ক্যাসিনো হিস্ট পর্ব থেকে: গভীর স্পেস 9.
অ্যান্টনি রটলেজ

8

"" এইচটিপি "স্কিমটি এইচটিটিপি প্রোটোকলের মাধ্যমে নেটওয়ার্ক সংস্থানগুলি সনাক্ত করতে ব্যবহৃত হয় This এই বিভাগটি এইচটিপি ইউআরএলগুলির জন্য স্কিম-নির্দিষ্ট সিনট্যাক্স এবং শব্দার্থবিজ্ঞানের সংজ্ঞা দেয়।" http://www.w3.org/Protocols/rfc2616/rfc2616.html

http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]] 

হ্যাঁ, একটি প্রশ্ন চিহ্ন পরে কিছু বৈধ। আপনার সার্ভারটি আলাদাভাবে ব্যাখ্যা করতে পারে, তবে উপাখ্যানিকভাবে , আপনি কিছু ভাষা দেখতে পান যে এটি বুলিয়ান মান হিসাবে তালিকাভুক্ত করা হলে সত্য।


6
আনুষ্ঠানিক সংজ্ঞার জন্য, আরএফসি 2396 ( ietf.org/rfc/rfc2396.txt ) দেখুন, যা অক্ষরের আইনি সেট নির্দিষ্টকরণ ব্যতীত ক্যোরির স্ট্রিংয়ের বিষয়বস্তু সম্পর্কে নীরব রয়েছে এবং যার বিশেষ অর্থ রয়েছে। বিশেষত, এটি বলে যে "ক্যোয়ারী উপাদানটি সংস্থার দ্বারা ব্যাখ্যা করা তথ্যের একটি স্ট্রিং," বোঝায় যে এর সংজ্ঞা প্রোটোকলের উপর নির্ভরশীল, এবং সুতরাং কী = মানটি মূলত কনভেনশন দ্বারা হয় is
রবার্টবি

6

হ্যাঁ, এটি বৈধ।

যদি কেউ কেবল প্যারামিটারটি বিদ্যমান কিনা তা পরীক্ষা করতে চান তবে এটি করার একটি উপায় এটি।


4

ইউআরআই স্পেক

ইউআরআই স্পেকের একমাত্র প্রাসঙ্গিক অংশটি হ'ল প্রথম এবং প্রথমটির মধ্যে সমস্ত কিছু জানার জন্য কোনও ক্যোয়ারীর অনুমানের সংজ্ঞাটি ফিট করে। এটি যেমন কোনও অক্ষর অন্তর্ভুক্ত করতে পারে । এর অর্থ হ'ল একটি কোয়েরি স্ট্রিং যেমন বৈধ বা বৈধ।?#[:/.?]?bar?ten+green+apples

এই জন্য RFC 3986 এখানে

এইচটিএমএল স্পেক

isindex অর্থপূর্ণভাবে এইচটিএমএল 5 নয়।

এটি কেবলমাত্র একটি ফর্মের মধ্যে প্রথম উপাদান হিসাবে ব্যবহারের জন্য অবহেলিত সরবরাহ করা হয় এবং নাম ছাড়াই জমা দেয়।

যদি এন্ট্রিটির নাম "isindex" হয়, তবে এর টাইপটি "পাঠ্য" হয় এবং ফর্ম ডেটা সেটটিতে এটি প্রথম এন্ট্রি হয়, তারপরে ফলাফলটির জন্য মান যুক্ত করুন এবং এই এন্ট্রিটির জন্য অবশিষ্ট সাবস্টিপগুলি এড়িয়ে যান এবং পরবর্তীটিতে চলে যান এন্ট্রি, যদি থাকে তবে বা অন্যথায় সামগ্রিক অ্যালগরিদমের পরবর্তী পদক্ষেপ।

Isindex পতাকাটি কেবলমাত্র উত্তরাধিকারের ব্যবহারের জন্য। এইচটিএমএল ডকুমেন্টস অনুসারে ফর্মগুলি এই ফ্ল্যাগ সেটটি দিয়ে ডিকোড করা দরকার এমন পেডগুলি উত্পন্ন করবে না।

শেষবারের আইসআইন্ডেক্সটি HTML3 সমর্থিত ছিল । এটি HTML5 এ ব্যবহার করা সহজ পিছনের সামঞ্জস্যতা সরবরাহ করা।

লাইব্রেরিতে সমর্থন

ইউআরআই-এর এই ফর্ম্যাটের জন্য লাইব্রেরিতে সমর্থনগুলি পরিবর্তিত হয় তবে কিছু গ্রন্থাগারগুলি সহজেই ব্যবহার সহজ করার জন্য উত্তরাধিকার সহায়তা সরবরাহ করে isindex

পার্ল ইউআরআই.এম (বিশেষ সমর্থন)

পার্লের ইউআরআই এর মতো কিছু লাইব্রেরি এই ধরণের কাঠামোকে পার্স করার পদ্ধতি সরবরাহ করে

$uri->query_keywords
$uri->query_keywords( $keywords, ... )
$uri->query_keywords( \@keywords )
Sets and returns query components that use the keywords separated by "+" format.

নোড.জেএস url(কোনও বিশেষ সমর্থন নেই)

আরও একটি ঘন ঘন উদাহরণ হিসাবে, node.jsসাধারণ রুট নেয় এবং উভয় হিসাবে পার্সিং সহজ হয়

  • একটি স্ট্রিং
  • বা, কী এবং মানগুলির একটি অবজেক্ট (ব্যবহার করে parseQueryString)

এর অনুরূপ কিছু অনুসরণ করে বেশিরভাগ অন্যান্য ইউআরআই-পার্সিং এপিআই।


3

2
নোট করুন যে আরএফসি 2396 "আরএফসি 1738 এবং আরএফসি 1808 এর জেনেরিক সংজ্ঞা সংশোধন করে এবং প্রতিস্থাপন করেছে।"
রবার্টবি

3

isindexnameএইচটিএমএল 5 থেকে অবজ্ঞাত যাদু

এই অবহেলিত বৈশিষ্ট্যটি এইচটিএমএল-এর পক্ষে বৈধ কিনা এমন আরও প্রমাণ সরবরাহ করে এমন ফর্ম জমা দেওয়ার অনুমতি দেয় such উদাহরণ:

<form action="#isindex" class="border" id="isindex" method="get">
  <input type="text" name="isindex" value="bar"/>
  <button type="submit">Submit</button>
</form>

প্রকারের একটি URL উত্পন্ন করে:

?bar

স্ট্যান্ডার্ড: https://www.w3.org/TR/html5/forms.html#naming-form-controls :- নাম- নাম অবদান

isindexতবে উল্লিখিত হিসাবে হ্রাস করা হয়েছে: https://stackoverflow.com/a/41689431/895245


1

অন্যান্য সমস্ত উত্তর বর্ণিত হিসাবে, এটি চেকিংয়ের জন্য পুরোপুরি বৈধ, বিশেষত বুলিয়ান ধরণের স্টাফের জন্য

নাম অনুসারে ক্যোরি স্ট্রিংটি পেতে এখানে একটি সাধারণ ফাংশন:

function getParameterByName(name, url) {
    if (!url) {
        url = window.location.href;
    }
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}

এবং এখন আপনি যা খুঁজছেন এমন ক্যোরি স্ট্রিংটি বিদ্যমান কিনা তা আপনি যাচাই করতে চান, আপনি একটি সাধারণ জিনিস যেমন করতে পারেন:

var exampleQueryString = (getParameterByName('exampleQueryString') != null);

The exampleQueryStringহতে হবে falseফাংশন কোয়েরি স্ট্রিং খুঁজে পাচ্ছি না পারেন, অন্যথায় হতে হবে true

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