Chrome का "अनुरोध डेस्कटॉप साइट" विकल्प कैसे काम करता है?


94

IOS google क्रोम के लिए, जब कोई उपयोगकर्ता "रिक्वेस्ट डेस्कटॉप साइट" बटन को हिट करता है, तो ब्राउज़र डेस्कटॉप साइट को लाने की कोशिश करने के लिए क्या करता है? मैं उस अनुरोध पर कुछ प्रकार के हेडर की कल्पना करता हूं जो साइट्स खोज रहे हैं, या कुछ इसी तरह का है?

जवाबों:


64

मुझे लगता User-Agent:है कि अनुरोध में केवल अंतर हैडर है।

यहां मेरे Android डिवाइस पर Chrome द्वारा भेजे गए उपयोगकर्ता-एजेंट शीर्षलेख हैं:

Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.45 Safari/535.19

पहले एक में "मोबाइल 'शब्द को नोटिस करें, और एंड्रॉइड सिस्टम और डिवाइस का भी उल्लेख करें। इनकी जांच करने पर, मैं देखता हूं कि यह झूठी जानकारी भी प्रदान करता है - अर्थात् X11 और x86_64 - डेस्कटॉप लिनक्स संस्करण द्वारा भेजे गए मूल्य को बारीकी से मिलान करने के लिए। क्रोम।


14
एक अलग हेडर शानदार होगा। उपयोगकर्ता एजेंट सूँघना बहुत भयानक है।
म्यू माइंड

10
मैं सहमत हूँ। कभी-कभी कुछ साइटों द्वारा लागू किया गया स्वत: पता लगाना और पुनर्निर्देशित करना बेहद प्रतिकूल और उग्र होता है।
dsh

5
एक बेहतर समाधान डिवाइस के आकार, इंटरफेस और क्षमताओं का पता लगाना होगा। CSS मीडिया क्वेरीज़ सही दिशा में एक कदम है।
ब्रैड

1
यह सुविधा एक साधारण यूए स्विच और ताज़ा द्वारा कार्यान्वित नहीं की जाती है। इस मामले की सच्चाई यह है कि अधिकांश मोबाइल साइटें डेस्कटॉप पर वापस स्विच नहीं करेंगी यदि डेस्कटॉप यूए स्ट्रिंग के साथ लोड किया गया है। तो फिर सफारी आपके मूल अनुरोध का उपयोग करता है? नहीं। यह तब भी काम आता है जब आप मूल रूप से मोबाइल साइट के URL में टाइप किए गए हों। मुझे नहीं पता कि इसका क्रियान्वयन कैसे हुआ क्योंकि मोबाइल संस्करणों का नाम किसी भी तरह से मानकीकृत नहीं है, लेकिन एक साधारण यूए परिवर्तन की तुलना में कुछ बेहतर हो रहा है।
एंड्रयू जी

मैं यह बताना चाहूंगा कि यदि "अनुरोध डेस्कटॉप साइट" विकल्प को ट्रिगर करता है तो "लेआउट व्यूपोर्ट" भी बदल जाएगा, जो मीडिया क्वेरी को प्रभावित करता है। लेआउट व्यूपोर्ट के बारे में अधिक जानकारी के लिए मोबाइल-मोबाइल-वेब-हैंडबुक की जांच करें ।
रिक

19

बस यह इंगित करना चाहता था कि क्रोम अब न केवल बदलता है User-Agentबल्कि मूल व्यूपोर्ट मेटा टैग को भी अनदेखा करता है यदि आप "डेस्कटॉप साइट का अनुरोध करें"। इस प्रकार यह User-Agentअब सूँघने के लिए आवश्यक नहीं होगा और आप व्यूपोर्ट परिवर्तन पर भरोसा कर सकते हैं क्योंकि अधिकांश उत्तरदायी साइटें स्वचालित रूप से करेंगी। आगे के संदर्भ के लिए इसे बदलें देखें ।


1
उसके लिए धन्यवाद। मेरी अपनी बहुत ही सरल वेबसाइट बहुत अलग व्यवहार कर रही है जब इसे क्लिक नहीं किया गया है और मैं समझ नहीं पाया कि क्यों मैं सीएसएस में मीडिया के प्रश्नों से ज्यादा कुछ नहीं कर रहा हूं।
आर रेवले

17

एक अन्य मामूली अंतर यह है कि अनुरोध किसी भी पुनः-निर्देशकों द्वारा स्थानांतरित किए जाने से पहले जानबूझकर दर्ज किए गए URL पर दिखाई देता है। उदाहरण के लिए:

यह देखते हुए: somesite.com एजेंट को सूँघता है, एंड्रॉइड देखता है, और एक दस्तावेज़ करता है। स्थानांतरण + = "/ m";

तब: ब्राउज़र में somesite.com/m का URL होगा

लेकिन: यदि आप "डेस्कटॉप साइट का अनुरोध करते हैं" तो यह यूजर-एजेंट को बदल देगा और somesite.com से फिर से अनुरोध करेगा

जब तक: आप पहली बार somesite.com/m के मोबाइल URL पर सीधे चले गए थे, जिस स्थिति में यह अभी somesite.com/m को पुनः लोड करता है।

मुझे उम्मीद है कि यह HTTP 301 और 302 रीडायरेक्ट के साथ काम करता है, मुझे पता है कि यह डॉक्युमेंटेशन के साथ काम करता है। कम से कम बदलाव (जैसा कि वर्णित है), और अनुमान लगाएगा कि यह <मेटा> रिफ्रेश के साथ काम करता है।


आप अपना उत्तर का आधार था इस ?
कीले

@Keale शायद दूसरे तरीके से, दी गई टाइमस्टैम्प्स
क्रिया

ऐसा लगता है कि यदि कोई POST अनुरोध 302 या 303 को किसी अन्य URL के लिए GET का सुझाव देता है, तो उपयोगकर्ता 'डेस्कटॉप दृश्य' सेटिंग बदलता है, ब्राउज़र 302/303 (POST पैरामीटर को खोते हुए) मूल URL पर GET अनुरोध सबमिट करेगा )। लगता है कि फ़ायरफ़ॉक्स और क्रोम दोनों ऐसा करते हैं और IMO यह निश्चित रूप से वह नहीं है जो होना चाहिए।
जेक

-2

यह जावास्क्रिप्ट स्निपेट प्रभावी रूप से ऐसा ही करेगा:

function requestDesktopSite() {
    document.getElementsByTagName('meta')['viewport'].content='min-width: 980px;';
}
<button onclick="requestDesktopSite()">Request Desktop Site</button>

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.