ইউআরএলে একাধিক প্রশ্ন চিহ্ন থাকা বৈধ?


92

আমি আজ নীচের ইউআরএল জুড়ে এসেছি:

http://www.sfgate.com/cgi-bin/blogs/inmarin/detail??blogid=122&entry_id=64497

ক্যোরি স্ট্রিংয়ের শুরুতে দ্বিগুণ প্রশ্ন চিহ্নটি লক্ষ্য করুন:

??blogid=122&entry_id=64497

আমার ব্রাউজারে এটির সাথে কোনও সমস্যা হয়েছে বলে মনে হচ্ছে না, এবং একটি দ্রুত বুকমার্কলেট চালাচ্ছে:

javascript:alert(document.location.search);

শুধু আমাকে উপরে প্রদর্শিত ক্যোয়ারী স্ট্রিং দিয়েছে।

এটি কি বৈধ ইউআরএল? আমি এতটা প্যাডেন্টিক হওয়ার কারণ (ধরে নিচ্ছি যে আমি আছি) কারণ আমার ক্যোয়ারী প্যারামিটারগুলির জন্য এই জাতীয় ইউআরএলগুলি পার্স করা দরকার, এবং দ্বিগুণ প্রশ্ন চিহ্নকে সমর্থন করার জন্য আমার কোডে কিছু পরিবর্তন প্রয়োজন। স্পষ্টতই যদি তারা বন্য অঞ্চলে থাকে তবে আমার তাদের সমর্থন করা দরকার; আমি মূলত কৌতূহলী যদি URL টির মান ঠিকভাবে অনুসরণ না করার জন্য আমার দোষ হয়, বা এটি আসলে একটি মান-অ-স্ট্রোল URL নয়।


ভাগ্যক্রমে, তবুও আমার কোড পরিবর্তন করার দরকার নেই। আমি indexOf()প্রশ্ন চিহ্নটি সনাক্ত করতে ব্যবহার করছিলাম , সুতরাং এটি প্রথম ঘটনার অবস্থানটি গ্রহণ করেছে। তারপরে আমি কোয়েরি_পরিমিতিগুলি প্রতিটি বিভক্ত করছি &এবং তারপরে প্রত্যেকের নাম / মান জোড়া =
বাংলো

উত্তর:


108

হ্যাঁ, এটি বৈধ। আক্ষরিক প্রশ্ন চিহ্ন হিসাবে বিবেচিত হওয়ার পরে কোনও ইউআরএল কেবল প্রথমটিরই ? তাত্পর্য রয়েছে:

ক্যোয়ারী উপাদানটি প্রথম প্রশ্ন চিহ্ন ("?") অক্ষর দ্বারা নির্দেশিত এবং সংখ্যার চিহ্ন ("#") অক্ষর দ্বারা বা ইউআরআই শেষে শেষ হয়।

...

অক্ষরগুলি স্ল্যাশ ("/") এবং প্রশ্ন চিহ্ন ("?") কোয়েরি উপাদানগুলির মধ্যে ডেটা উপস্থাপন করতে পারে। সাবধান থাকুন যে কোনও পুরানো, ভ্রান্ত ইমপ্লিমেন্টগুলি এ জাতীয় ডেটা আপেক্ষিক রেফারেন্সগুলির জন্য ভিত্তি ইউআরআই হিসাবে ব্যবহৃত হয় (বিভাগ 5.1) সঠিকভাবে পরিচালনা করতে পারে না, স্পষ্টতই কারণ তারা শ্রেণিবদ্ধ বিভাজকগুলির সন্ধান করার সময় পথের ডেটা থেকে ক্যোয়ারী ডেটা আলাদা করতে ব্যর্থ হয়। যাইহোক, কোয়েরি উপাদানগুলি প্রায়শই "কী = মান" জোড়া আকারে সনাক্তকারী তথ্য বহন করতে ব্যবহৃত হয় এবং একটি ঘন ঘন ব্যবহৃত মান অন্য ইউআরআই-র একটি রেফারেন্স, সেই অক্ষরগুলি শতাংশ-এনকোডিং এড়ানোর পক্ষে কখনও কখনও ব্যবহারের পক্ষে ভাল।

http://tools.ietf.org/html/rfc3986#section-3.4


9
তাহলে এর অর্থ কি প্রথম ক্যোয়ারী প্যারামিটারটির নাম "? ব্লগিড" আছে এবং "ব্লগিড" নয়? এটি মজাদার হতে পারে ...
গ্যালাকটিক কাউবয়

4
@ গ্যালাকটিক কাউবয় - হ্যাঁ, আমার কাছে একই ঘটনা ঘটেছিল। আপনি সঠিক - ফায়ারব্যাগ নিশ্চিত করেছে যে প্রথম ক্যোয়ারী প্যারামিটারটি আসলে ?blogid। এটি প্রকৃতপক্ষে একটি অপ্রয়োজনীয় প্যারামিটার হিসাবে উপস্থিত বলে মনে হচ্ছে, পৃষ্ঠাটি সেখানে যে কোনও সংখ্যক প্রশ্ন চিহ্নের সাথে একইভাবে পরিবেশন করা হয়েছে, বা পরামিতিটি পুরোপুরি বাদ দিচ্ছে।
বাংলো

27

স্পর্শকাতরভাবে সম্পর্কিত উত্তর হিসাবে foo?spam=1?&eggs=3প্যারামিটারটির spamমান দেয়1?


হ্যাঁ. ক্ষেত্রে .htaccessবা অনুরূপ কৌশল নেই। যদি আমরা পরিবর্তিত fooহয়ে script.phpএই অনুরোধটি করি script.php?spam=1?&eggs=3তবে var_dump($_GET)দেখায়array(2) { ["spam"]=> string(2) "1?" ["eggs"]=> string(1) "3" }
হেব্ব
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.