2010-03-20 14 views
14

एचटीपीवॉच की मदद से, मैंने यह पता लगाने की कोशिश की कि जीमेल कैसे धूमकेतु लागू करता है।जीमेल ने धूमकेतु को कैसे लागू किया?

मैं जीमेल में दो खातों के साथ लॉगिन करता हूं, एक आईई में और दूसरा फ़ायरफ़ॉक्स में। जीमेल में जीटीकॉक में कुछ जादू शब्द जैसे "WASSUP" के साथ चैट करना। फिर, मैं जीमेल खातों दोनों को लॉगऑफ करता हूं, "WASSUP" स्ट्रिंग के बिना किसी भी http सामग्री को फ़िल्टर करता हूं। परिणाम दिखाता है कि कौन सा HTTP अनुरोध स्ट्रीमिंग चैनल है। (नोट: मुझे लॉगऑफ करना होगा। अन्यथा, कभी भी समाप्त होने वाला HTTP एचटीपीवैच में सामग्री नहीं दिखाएगा।)

परिणाम दिलचस्प है।

https://mail/channel/bind?VER=8&at=xn3j33vcvk39lkfq .....

कोई आश्चर्य की बात जीमेल IFRAME साथ IE में है कि धूमकेतु है: धारा चैनल के लिए यूआरएल की तरह है। एचटीपी सामग्री "<html><body>" से शुरू होती है।

मूल रूप से, मैंने अनुमान लगाया कि जीमेल फ़ायरफ़ॉक्स में धूमकेतु को multipart XmlHttpRequest के साथ करता है। मेरे आश्चर्य के लिए, प्रतिक्रिया शीर्षलेख में "मल्टीपार्ट/एक्स-मिश्रित-प्रतिस्थापन" शीर्षलेख नहीं है। प्रतिक्रिया हेडर के रूप में नीचे हैं:

HTTP/1.1 200 OK 
Content-Type: text/plain; charset=utf-8 
Cache-Control: no-cache, no-store, max-age=0, must-revalidate 
Pragma: no-cache 
Expires: Fri, 01 Jan 1990 00:00:00 GMT 
Date: Sat, 20 Mar 2010 01:52:39 GMT 
X-Frame-Options: ALLOWALL 
Transfer-Encoding: chunked 
X-Content-Type-Options: nosniff 
Server: GSE 
X-XSS-Protection: 0 

दुर्भाग्य से, HttpWatch नहीं बताता है कि क्या एक HTTP अनुरोध XmlHttpRequest से है या नहीं। सामग्री एचटीएमएल नहीं है लेकिन जेएसओएन। यह एक्सएचआर के लिए प्रतिक्रिया की तरह दिखता है, लेकिन यह धूमकेतु के लिए मल्टीपार्ट/एक्स-मिश्रित प्रतिस्थापन के बिना काम नहीं करेगा, है ना?

क्या यह पता लगाने के लिए कोई और तरीका है कि जीमेल कैसे धूमकेतु लागू करता है?

अद्यतन: आगे की जांच पड़ताल करने के बाद, मेरा मानना ​​है कि जीमेल धूमकेतु इस तरह से लागू करता है: 1) IE में, यह एक हमेशा के लिए-छुपा-आइफ्रेम का उपयोग करें; 2) फ़ायरफ़ॉक्स में, यह मल्टीपार्ट/एक्स-मिश्रित-प्रतिस्थापन शीर्षलेख के बिना हमेशा के लिए एक्सएचआर का उपयोग करता है। ग्राहक conditon (readyState == 3) या (readyState == 4) में प्रतिक्रिया देगा। यही है, दोनों इंटरैक्टिव राज्य और पूर्ण राज्य में।

उत्तर

15

प्रति this article,

तो गूगल Gmail द्वारा प्रयुक्त समाधान क्या है?

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

बाकी लेख विकल्पों के अन्वेषण के साथ-साथ जीमेल द्वारा चुने गए विशिष्ट खोज सहित अधिक विस्तार से चला जाता है।

+0

यह एक अच्छा लेख है। लेकिन, यह अभी भी व्याख्या नहीं करता है कि क्यों जीमेल ने जेएसओएन को फ़ायरफ़ॉक्स में प्रतिक्रिया के रूप में चुना है। –

+0

@ मॉर्गन, जेएसओएन वास्तव में डेटा पैकेज करने का एक अच्छा तरीका है, खासकर हालांकि जावास्क्रिप्ट के उपयोग के लिए विशेष रूप से नहीं - सीएफआर http://ajaxian.com/archives/json-vs-xml-the-debate और (esp।) कई लिंक उधर से। खंडित स्थानांतरण-एन्कोडिंग के साथ, यह ठीक काम करता है ... कम से कम मानक-अनुरूप ब्राउज़र में ;-)। –

+0

हाय, लेख के लिए waybackmachine कोशिश की क्योंकि लेख नीचे है। क्या आप एक और लिंक दे सकते हैं? धन्यवाद!! – loveNoHate

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