ইউআরআই দুটি স্ল্যাশ দিয়ে শুরু হচ্ছে ... তারা কীভাবে আচরণ করবে?


93

ইদানীং আমি দেখেছি কাজ ভালো কোড-ব্লক:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

আর আরএফসি 2396 (ইউআরআই সিনট্যাক্স) এবং আরএফসি 2616 (এইচটিটিপি 1.1) অনুসারে দুটি স্ল্যাশ দিয়ে শুরু হওয়া এই ইউআরআই বৈধ, তবে দুর্ভাগ্যক্রমে আরএফসিগুলি সেগুলি প্রকৃতপক্ষে ব্যাখ্যা করে না।

যে কেউ আমাকে এমন কোনও সংস্থানে নির্দেশ করতে পারে যা ব্রাউজারগুলি কীভাবে এই ইউআরআইগুলি প্রক্রিয়াকরণ করবে / করবে / করবে তা ব্যাখ্যা করে?

উত্তর:


86

আপনি যে সংস্থানটি সন্ধান করছেন তা হ'ল আরএফসি 3986

বিভাগ 4.2 এবং বিভাগ 5.4 দেখুন। পরেরটির উদ্ধৃতি:

রেফারেন্স রেজোলিউশন উদাহরণ

একটি ভাল সংজ্ঞায়িত বেস ইউআরআই সহ একটি উপস্থাপনের মধ্যে:

    http://a/b/c/d;p?q

আপেক্ষিক রেফারেন্সটি তার লক্ষ্য ইউআরআইতে রূপান্তরিত হয়েছে:

  "g:h"           =  "g:h"
  "g"             =  "http://a/b/c/g"
  "./g"           =  "http://a/b/c/g"
  "g/"            =  "http://a/b/c/g/"
  "/g"            =  "http://a/g"
  "//g"           =  "http://g"
  "?y"            =  "http://a/b/c/d;p?y"
  "g?y"           =  "http://a/b/c/g?y"
  "#s"            =  "http://a/b/c/d;p?q#s"
  "g#s"           =  "http://a/b/c/g#s"
  "g?y#s"         =  "http://a/b/c/g?y#s"
  ";x"            =  "http://a/b/c/;x"
  "g;x"           =  "http://a/b/c/g;x"
  "g;x?y#s"       =  "http://a/b/c/g;x?y#s"
  ""              =  "http://a/b/c/d;p?q"
  "."             =  "http://a/b/c/"
  "./"            =  "http://a/b/c/"
  ".."            =  "http://a/b/"
  "../"           =  "http://a/b/"
  "../g"          =  "http://a/b/g"
  "../.."         =  "http://a/"
  "../../"        =  "http://a/"
  "../../g"       =  "http://a/g"

এর অর্থ হ'ল যখন বেস ইউআরআই হয় http://a/b/c/d;p?qএবং আপনি ব্যবহার করেন //gতখন আপেক্ষিক রেফারেন্সটি রূপান্তরিত হয় http://g


4
সুতরাং এটি HTTP বা https এইভাবে যা কিছু কাজ করবে তা নির্ধারণ করার জন্য জাভাস্ক্রিপ্ট ব্যবহার করার সমাধান হতে পারে
Ibu

যেহেতু আপনার পিতামাতার স্তরে পৌঁছানো দরকার, তাই ব্যবহার করুন ../g- এটি বর্তমান প্রোটোকলটি ব্যবহার করবে এবং এতে নেতৃত্ব দেবে http://a/b/c/g
বোরিস এস

এটি একটি আশ্চর্যজনক প্রশ্ন হতে পারে, তবে এই বেস ইউআরআই কোথা থেকে আসে? ব্রাউজার ইউআরএল বার? সার্ভার? এইচটিএমএল পৃষ্ঠায় একটি ট্যাগ?
কোডরেচেট

4
@ থেইনগ্লোকোড: উত্তরটি এটি নির্ভর করে। এক্সএমএল / এক্সএইচটিএমএল / HTML5 এর মধ্যে আপনি ব্যবহার করতে পারেন xml:baseথেকে কোনো উপাদান উপর স্পষ্টভাবে এটি সেট । এইচটিএমএলটিতে ডিফল্টরূপে বেস ইউআরআই হ'ল পৃষ্ঠার একই ইউআরআই (তবে কোনও সিএসএস ফাইলের অভ্যন্তরে, বেস ইউআরআই সিএসএস ইউরির সাথে সম্পর্কিত, এইচটিএমএলযুক্ত নয় , তবে পুরানো আইআইএইচটিএমএল এর সাথে তুলনামূলকভাবে তৈরি করে)। অন্যান্য প্রোটোকল এবং ভাষায়, এটি আলাদা হতে পারে (এক্সএসএলটি-তে, এটি বর্তমান আইটেমের উপর নির্ভরশীল, উদাহরণস্বরূপ)। এছাড়াও দেখুন <html:base>
আবেল

4
গুরুত্বপূর্ণ - ফলাফল সবসময় হয় না http! এটি পৃষ্ঠার প্রসঙ্গে প্রোটোকলের উপর নির্ভর করে। প্রসঙ্গ অধীনে লোড হয়ে থাকে তাহলে http://a/b/c/d;p?q, তারপর //gপ্রকৃতপক্ষে করতে সমাধান করা http://g। পৃষ্ঠাটি যদি লোড করা হয় http://a/b/c/d;p?qতবে ফলাফলটি হবে https://g। এবং অন্যান্য প্রোটোকলগুলি file://(পৃষ্ঠাটি ডিস্ক থেকে লোড করা হয়) সম্পর্কেও ভুলে যাবেন না - যা অবশ্যই আপনাকে প্রচুর মাথা ব্যাথা দেবে।
অ্যান্ড্রে তেসারকাস

62

এগুলি প্রোটোকল সম্পর্কিত ইউআরএল। বর্তমান প্রোটোকলটি রেখে তারা একটি ঠিকানার দিকে নির্দেশ করে।

এই স্বরলিপিটি প্রায়শই "মিশ্র সামগ্রী" সমস্যা এড়াতে ব্যবহৃত হয় ( একই সতর্কতা বার্তা httpএবং httpsএকই HTTPS পৃষ্ঠায় সংস্থান সম্পর্কে অভিযোগ করে) IE

আপডেট: আরএফসি 3986 এ অফিসিয়াল ডকুমেন্টেশন :

দুটি স্ল্যাশ অক্ষর দিয়ে শুরু হওয়া একটি আপেক্ষিক রেফারেন্সকে নেটওয়ার্ক-পাথ রেফারেন্স বলা হয়; যেমন উল্লেখ খুব কমই ব্যবহৃত হয়। একক স্ল্যাশ চরিত্রের সাথে শুরু হওয়া একটি আপেক্ষিক রেফারেন্সকে পরম-পথের রেফারেন্স বলা হয়। কোনও আপেক্ষিক রেফারেন্স যা স্ল্যাশ চরিত্রের সাথে শুরু হয় না তাকে আপেক্ষিক-পথ রেফারেন্স বলা হয়।


জানতে পেরে দুর্দান্ত, তবে জনপ্রিয় ব্রাউজারগুলির সাথে এটি কতটা অনুগত। একটি দ্রুত অনুসন্ধান আমাকে বলেছিল এটি আই 6 এর সাথে কাজ করে না ... এটি কি এইচটিএমএল 5 বৈশিষ্ট্য ??
শেন এন

4
@ শেন এটি সমস্ত ব্রাউজারে কাজ করা উচিত। আইআই 6 এ কাজ করে না বলে দাবি করে আপনার কি কোনও লিঙ্ক আছে?
পেক্কা

4
খুব নিশ্চিত যে এটির একটি আই আই 1 বৈশিষ্ট্য!
জন হান্না

প্লাস প্রোটোকল আপেক্ষিক উল্লেখ করার জন্য
তাওফিক খলিফাহ

30

এগুলি হ'ল প্রোটোকল স্বতন্ত্র ইউআরএল। যদি ওয়েব পৃষ্ঠাটি https তে পরিবেশন করা হয় তবে অনুরোধটি https ব্যবহার করে, যদি HTTP হয় তবে HTTP।

পল আইরিশ মনে হয় এটিকে তাঁর বয়লারপ্লেট কোডে অন্তর্ভুক্ত করে জনপ্রিয় করেছে।


2

এটি সচেতন থাকুন যে এটি কেবল HTTP বা https নয় , ফাইল , এফটিপি ইত্যাদি,

এর অর্থ যদি আপনি লোকালহোস্টে সরাসরি htm ফাইলটি আপনার ব্রাউজারে খোলেন , ব্রাউজারটি // ফাইল প্রোটোকল হিসাবে // সমাধান করবে এবং আপনার পৃষ্ঠাটি কাজ করবে না। এটি প্যাকড ওয়েবসাইটগুলিতে ইলেক্ট্রন, ফোনগ্যাপ ইত্যাদি সরঞ্জাম ব্যবহার করে "নেটিভ" অ্যাপ হিসাবে সমস্যা দেখা দিতে পারে as

উদাহরণ:

<script src="//mywebsite.com/resource.js"></script>

প্রতি

<script src="file://mywebsite.com/resource.js"></script>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.