2010-07-08 14 views
11

मैंने कुछ साइटें //somedomain.com/images/img.jpg का उपयोग करके http://somedomain.com/images/img.jpg का उपयोग करके देखा है जिसमें http: भी शामिल है।src या href में "http: //" और बस "//" का उपयोग करने के बीच क्या अंतर है?

क्या दोनों के बीच कोई अंतर है? क्या ब्राउज़र बस गायब http: को ठीक कर रहा है और ये लोग आलसी हैं? तर्क के पीछे मैं उत्सुक हूँ।

+1

जब आप कहते हैं कि आपने "साइटें देखी हैं" जहां आपने उन्हें देखा है? क्या यह प्रिंट में है या किसी वेब साइट पर लिंक का नाम है? –

+0

मेरा मतलब उनके स्रोत कोड को देखकर है। एक प्रिंट आलेख या उस तरह कुछ भी नहीं। – chadley

उत्तर

11

यदि आप पहले से ही http के माध्यम से साइट पर हैं, तो यह मान लेंगे कि आप http के बारे में बात कर रहे हैं और उसी प्रोटोकॉल के माध्यम से उसी सर्वर से कनेक्ट हो सकते हैं। https के साथ ही। यदि आप http पर हैं और https पर जाना चाहते हैं, तो आपको href में प्रोटोकॉल निर्दिष्ट करना होगा।

+0

तो यह उन साइटों पर उपयोग किया जाएगा जिन्हें या तो 'http' या 'https' पर देखा जा सकता है? – chadley

+3

@ चाडली - स्थानीय उपयोग के लिए इरादा कम है, बल्कि दूरस्थ उपयोग है। यदि 'superanalytics.com' HTTP और HTTPS दोनों प्रदान करता है, तो यह आपको यूआरआई' // superanalytics.com/analytics.js' के साथ अपनी एनालिटिक्स स्क्रिप्ट शामिल करने के लिए कह सकता है।इस तरह, यदि आप HTTP चला रहे हैं, तो SuperAnalytics भी होगा। यदि आप HTTPS चला रहे हैं, तो SuperAnalytics भी होगा। और फिर आप उन बुरा नहीं पाते हैं "यह एक सुरक्षित साइट है जिस पर असुरक्षित चीजें हैं!" चेतावनी। – Matchu

+0

मिलानू को स्पष्ट करने के लिए धन्यवाद। जो अब सही समझ में आता है कि आपने एक उदाहरण बताया है। – chadley

-1

मैंने कभी भी //somedomain.com/images/img.jpg नहीं देखा है और यह नहीं लगता कि यह कानूनी है।

मैंने /images/img.jpg देखा है जिसका अर्थ है "वर्तमान डोमेन का उपयोग करें"। यदि आपके पास कई वेब पते हैं (उदाहरण के लिए, aaaaa.com & aaaaa.net) एक ही साइट पर इंगित करते हैं तो यह सहायक होता है।

+1

वास्तव में यह कानूनी है। –

7

ऐसा नहीं है कि मैंने इसे पहले इस्तेमाल किया है, लेकिन यह एक वैध यूआरआई संदर्भ है।

URI-reference = URI | relative-ref 

relative-ref = relative-part [ "?" query ] [ "#" fragment ] 

relative-part = "//" authority path-abempty 
      | path-absolute 
      | path-noscheme 
      | path-empty 

जहां के रूप में एक निरपेक्ष यूआरआई है: व्याकरण से

URI   = scheme ":" hier-part [ "?" query ] [ "#" fragment ] 

अधिक जानकारी के लिए RFC3986

+0

+1। उत्कृष्ट है! मैं अब हर जगह इसका इस्तेमाल करूंगा! (कम से कम सर्वर पर फ़ाइलों के लिंक के लिए जो स्थिर सामग्री होस्ट करता है)। –

+0

ध्यान दें कि इसका मतलब है कि अभ्यास में दो स्लेश का उपयोग करने का कोई कारण नहीं है - केवल एक पूर्ण पथ के रूप में गिना जाएगा। – Chuck

+0

मुझे लगता है कि यह उत्तर बिंदु को याद करता है। यह मान्य है, लेकिन कार्यात्मक भी है। @ Rakuo15 का जवाब देखें। – Matchu

2

//somedomain.com/images/img.jpg के बाकी को पढ़ने के लिए स्वतंत्र लग रहा है के अनुसार एक पूरी तरह से वैध url सिंटैक्स है RFC 3986: Section 4.2

यह वर्तमान scheme से संबंधित है, और इसलिए यह http और https के बीच स्विच करते समय बहुत उपयोगी हो सकता है, क्योंकि आपको योजना निर्दिष्ट करने की आवश्यकता नहीं होगी।

सभी आधुनिक ब्राउज़रों कि प्रारूप समझ जाएगा, IE 6. सहित

3

योजना-सापेक्ष URL का विशेष रूप से उपयोगी हैं जब आप एक HTTPS वेबसाइट की सेवा कर रहे हैं और आप स्टाइलशीट, छवियां की तरह ही स्थिर सामग्री साझा करना चाहते हैं, एक HTTP साइट के रूप में स्क्रिप्ट और इतने पर।

alt text

: हार्डकोड <link href>, <script src>, <img src> और इतने पर की तरह स्थिर सामग्री लिंक में http: और https: से अधिक वेबपेज खुद को देखने के औसत webbrowser निम्नलिखित प्रसिद्ध आईई सुरक्षा अलर्ट की तरह सुरक्षा चेतावनी पॉप का कारण होगा

alt text

एक योजना-सापेक्ष URL पर "असुरक्षित" सामग्री सर्व इस समस्या को हल करेंगे।

संबंधित मुद्दे