Computer >> कंप्यूटर ट्यूटोरियल >  >> सॉफ्टवेयर >> ब्राउज़र्स

यह समझना कि ब्राउज़र वेब सामग्री को कैसे संसाधित करते हैं

यह समझना कि ब्राउज़र वेब सामग्री को कैसे संसाधित करते हैं <पी> एलेक्स नडालिन

द्वारा

वेब एप्लिकेशन सुरक्षा का एक परिचय

<पी> यह समझना कि ब्राउज़र वेब सामग्री को कैसे संसाधित करते हैं _फ़ोटो द्वारा [अनस्प्लैश](https://unsplash.com/photos/cVMaxt672ss?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText" rel='noopener' target='_blank' title=''>लियाम टकर

<पी> आप क्रोम, फ़ायरफ़ॉक्स, एज या सफारी जैसे सबसे लोकप्रिय ब्राउज़रों में से एक के साथ काम करने के आदी हो सकते हैं, लेकिन इसका मतलब यह नहीं है कि वहां अलग-अलग ब्राउज़र नहीं हैं।

<पी> उदाहरण के लिए, लिंक्स एक हल्का, टेक्स्ट-आधारित ब्राउज़र है जो आपकी कमांड लाइन से काम करता है। लिंक्स के मूल में वही सटीक सिद्धांत निहित हैं जो आपको किसी भी अन्य "मुख्यधारा" ब्राउज़र में मिलेंगे। एक उपयोगकर्ता एक वेब पता (यूआरएल) दर्ज करता है, ब्राउज़र दस्तावेज़ लाता है और उसे प्रस्तुत करता है - एकमात्र अंतर यह है कि लिंक्स विज़ुअल रेंडरिंग इंजन का उपयोग नहीं करता है, बल्कि एक टेक्स्ट-आधारित इंटरफ़ेस का उपयोग करता है, जो Google जैसी वेबसाइटों को इस तरह दिखता है:

<पी> यह समझना कि ब्राउज़र वेब सामग्री को कैसे संसाधित करते हैं

<पी> हम मोटे तौर पर समझते हैं कि एक ब्राउज़र क्या करता है, लेकिन आइए उन कदमों पर करीब से नज़र डालें जो ये सरल एप्लिकेशन हमारे लिए करते हैं।

ब्राउज़र क्या करता है?

<पी> लंबी कहानी को संक्षेप में कहें तो, एक ब्राउज़र का काम मुख्य रूप से होता है:

  • DNS रिज़ॉल्यूशन
  • HTTP एक्सचेंज
  • प्रतिपादन
  • धोएं और दोहराएं

DNS रिज़ॉल्यूशन

<पी> यह प्रक्रिया सुनिश्चित करती है कि एक बार जब उपयोगकर्ता यूआरएल दर्ज करता है, तो ब्राउज़र को पता चल जाता है कि उसे किस सर्वर से कनेक्ट करना है। ब्राउज़र उस google.com को खोजने के लिए DNS सर्वर से संपर्क करता है 216.58.207.110 में अनुवादित , एक आईपी पता जिससे ब्राउज़र कनेक्ट हो सकता है।

HTTP एक्सचेंज

<पी> एक बार जब ब्राउज़र यह पहचान लेता है कि कौन सा सर्वर हमारे अनुरोध को पूरा करेगा, तो वह इसके साथ एक टीसीपी कनेक्शन शुरू करेगा और HTTP एक्सचेंज शुरू करेगा। . यह और कुछ नहीं बल्कि ब्राउज़र के लिए सर्वर के साथ संचार करने का एक तरीका है जिसकी उसे आवश्यकता है, और सर्वर के लिए जवाब देने का एक तरीका है।

<पी> HTTP वेब पर संचार करने के लिए सबसे लोकप्रिय प्रोटोकॉल का नाम है, और सर्वर के साथ संचार करते समय ब्राउज़र ज्यादातर HTTP के माध्यम से बात करते हैं। HTTP एक्सचेंज में क्लाइंट (हमारा ब्राउज़र) एक अनुरोध भेजता है , और सर्वर एक प्रतिक्रिया के साथ उत्तर दे रहा है .

<पी> उदाहरण के लिए, ब्राउज़र के google.com के पीछे सर्वर से सफलतापूर्वक कनेक्ट होने के बाद , यह एक अनुरोध भेजेगा जो निम्नलिखित जैसा दिखेगा:

GET / HTTP/1.1Host: google.comAccept: */*
<पी> आइए अनुरोध को पंक्ति दर पंक्ति तोड़ें:

  • GET / HTTP/1.1 :इस पहली पंक्ति के साथ, ब्राउज़र सर्वर से / स्थान पर दस्तावेज़ को पुनः प्राप्त करने के लिए कहता है , यह कहते हुए कि शेष अनुरोध HTTP/1.1 प्रोटोकॉल का पालन करेगा (यह 1.0 का भी उपयोग कर सकता है) या 2 )
  • Host: google.com :यह HTTP/1.1 में अनिवार्य एकमात्र HTTP हेडर है . चूंकि सर्वर एकाधिक डोमेन (google.com) परोस सकता है , google.co.uk , आदि) ग्राहक यहां उल्लेख करता है कि अनुरोध उस विशिष्ट होस्ट के लिए था
  • Accept: */* :एक वैकल्पिक हेडर, जहां ब्राउज़र सर्वर को बता रहा है कि वह किसी भी प्रकार की प्रतिक्रिया स्वीकार करेगा। सर्वर में एक संसाधन हो सकता है जो JSON, XML या HTML प्रारूपों में उपलब्ध हो, इसलिए वह जो भी प्रारूप पसंद करे उसे चुन सकता है
<पी> ब्राउज़र के बाद, जो क्लाइंट के रूप में कार्य करता है , अपने अनुरोध के साथ किया जाता है, अब जवाब देने की बारी सर्वर की है। प्रतिक्रिया इस प्रकार दिखती है:

HTTP/1.1 200 OKCache-Control: private, max-age=0Content-Type: text/html; charset=ISO-8859-1Server: gwsX-XSS-Protection: 1; mode=blockX-Frame-Options: SAMEORIGINSet-Cookie: NID=1234; expires=Fri, 18-Jan-2019 18:25:04 GMT; path=/; domain=.google.com; HttpOnly
<!doctype html><html">......</html>
<पी> वाह, यह समझने लायक बहुत सारी जानकारी है। सर्वर हमें बताता है कि अनुरोध सफल रहा (200 OK ) और प्रतिक्रिया में कुछ शीर्षलेख जोड़ता है उदाहरण के लिए, यह विज्ञापन देता है कि किस सर्वर ने हमारे अनुरोध को संसाधित किया (Server: gws ), X-XSS-Protection क्या है इस प्रतिक्रिया की नीति इत्यादि इत्यादि।

<पी> अभी, आपको प्रतिक्रिया की प्रत्येक पंक्ति को समझने की आवश्यकता नहीं है। हम इस श्रृंखला में बाद में HTTP प्रोटोकॉल, उसके हेडर इत्यादि को कवर करेंगे।

<पी> अभी के लिए, आपको बस यह समझने की आवश्यकता है कि क्लाइंट और सर्वर सूचनाओं का आदान-प्रदान कर रहे हैं और वे HTTP के माध्यम से ऐसा करते हैं।

रेंडरिंग

<पी> अंतिम, लेकिन कम से कम, प्रतिपादन प्रक्रिया. एक ब्राउज़र कितना अच्छा होगा यदि वह उपयोगकर्ता को केवल मज़ेदार पात्रों की सूची ही दिखाए?

<!doctype html><html">......</html>
<पी> सशरीर मेंं प्रतिक्रिया के लिए, सर्वर में Content-Type के अनुसार प्रतिक्रिया का प्रतिनिधित्व शामिल होता है शीर्षक. हमारे मामले में, सामग्री प्रकार text/html पर सेट किया गया था , इसलिए हम प्रतिक्रिया में HTML मार्कअप की अपेक्षा कर रहे हैं - जो बिल्कुल वैसा ही है जैसा हम मुख्य भाग में पाते हैं।

<पी> यहीं पर ब्राउज़र वास्तव में चमकता है। यह HTML को पार्स करता है, मार्कअप में शामिल अतिरिक्त संसाधनों को लोड करता है (उदाहरण के लिए, लाने के लिए JavaScript फ़ाइलें या CSS दस्तावेज़ हो सकते हैं) और उन्हें जितनी जल्दी हो सके उपयोगकर्ता के सामने प्रस्तुत करता है।

<पी> एक बार फिर, अंतिम परिणाम कुछ ऐसा है जिसे औसत व्यक्ति समझ सकता है।

<पी> यह समझना कि ब्राउज़र वेब सामग्री को कैसे संसाधित करते हैं

<पी> जब हम किसी ब्राउज़र के एड्रेस बार में एंटर दबाते हैं तो वास्तव में क्या होता है, इसके अधिक विस्तृत संस्करण के लिए मैं "क्या होता है जब..." पढ़ने का सुझाव दूंगा, जो प्रक्रिया के पीछे के तंत्र को समझाने का एक बहुत विस्तृत प्रयास है।

<पी> चूंकि यह सुरक्षा पर केंद्रित एक श्रृंखला है, इसलिए हमने जो अभी सीखा है उस पर मैं एक संकेत देना चाहता हूं:हमलावर आसानी से HTTP एक्सचेंज और रेंडरिंग भाग में कमजोरियों से लाभ उठाते हैं . कमजोरियाँ, और दुर्भावनापूर्ण उपयोगकर्ता, अन्यत्र भी छिपे हुए हैं, लेकिन उन स्तरों पर एक बेहतर सुरक्षा दृष्टिकोण पहले से ही आपको अपनी सुरक्षा स्थिति में सुधार करने में प्रगति करने की अनुमति देता है।

विक्रेता

<पी> वहां मौजूद 4 सबसे लोकप्रिय ब्राउज़र अलग-अलग विक्रेताओं के हैं:

  • Google द्वारा Chrome
  • मोज़िला द्वारा फ़ायरफ़ॉक्स
  • एप्पल द्वारा सफारी
  • माइक्रोसॉफ्ट द्वारा एज
<पी> बाज़ार में अपनी पैठ बढ़ाने के लिए एक-दूसरे से लड़ने के अलावा, विक्रेतावेब मानकों में सुधार करने के लिए भी एक-दूसरे से जुड़ते हैं। , जो ब्राउज़रों के लिए एक प्रकार की "न्यूनतम आवश्यकताएँ" हैं।

<पी> W3C मानकों के विकास के पीछे की संस्था है, लेकिन ब्राउज़रों के लिए अपनी स्वयं की सुविधाएँ विकसित करना असामान्य नहीं है जो अंततः इसे वेब मानक बनाती हैं, और सुरक्षा भी इसका अपवाद नहीं है।

<पी> उदाहरण के लिए, क्रोम 51 ने सेमसाइट कुकीज़ पेश की, एक ऐसी सुविधा जो वेब अनुप्रयोगों को सीएसआरएफ नामक एक विशेष प्रकार की भेद्यता से छुटकारा पाने की अनुमति देगी (इस पर बाद में और अधिक)। अन्य विक्रेताओं ने फैसला किया कि यह एक अच्छा विचार है और उन्होंने इसका पालन किया, जिससे सेमसाइट एक वेब मानक बन गया:अब तक, सेमसाइट कुकी समर्थन के बिना सफारी एकमात्र प्रमुख ब्राउज़र है।

<पी> यह समझना कि ब्राउज़र वेब सामग्री को कैसे संसाधित करते हैं

<पी> यह हमें 2 बातें बताता है:

  • सफारी अपने उपयोगकर्ताओं की सुरक्षा के बारे में पर्याप्त परवाह नहीं करता है (मजाक कर रहा हूं:सेमसाइट कुकीज़ सफारी 12 में उपलब्ध होंगी, जो कि जब तक आप यह लेख पढ़ रहे होंगे तब तक पहले ही जारी हो चुकी होगी)
  • एक ब्राउज़र पर भेद्यता को पैच करने का मतलब यह नहीं है कि आपके सभी उपयोगकर्ता सुरक्षित हैं
<पी> पहला बिंदु सफ़ारी पर एक शॉट है (जैसा कि मैंने बताया, मजाक कर रहा हूँ!), जबकि दूसरा बिंदु वास्तव में महत्वपूर्ण है। वेब एप्लिकेशन विकसित करते समय, हमें केवल यह सुनिश्चित करने की आवश्यकता नहीं है कि वे विभिन्न ब्राउज़रों पर एक जैसे दिखें, बल्कि यह भी सुनिश्चित करें कि हमारे उपयोगकर्ता सभी प्लेटफ़ॉर्म पर समान रूप से सुरक्षित हों।

<पी> वेब सुरक्षा के प्रति आपकी रणनीति ब्राउज़र के विक्रेता द्वारा हमें जो करने की अनुमति देती है उसके अनुसार अलग-अलग होनी चाहिए . आजकल, अधिकांश ब्राउज़र समान सुविधाओं के सेट का समर्थन करते हैं और शायद ही कभी अपने सामान्य रोडमैप से विचलित होते हैं, लेकिन उपरोक्त जैसे उदाहरण अभी भी होते हैं, और यह कुछ ऐसा है जिसे हमें अपनी सुरक्षा रणनीति को परिभाषित करते समय ध्यान में रखना होगा।

<पी> हमारे मामले में, यदि हम निर्णय लेते हैं कि हम केवल सेमसाइट कुकीज़ के माध्यम से सीएसआरएफ हमलों को कम करने जा रहे हैं, तो हमें अवगत होना चाहिए कि हम अपने सफारी उपयोगकर्ताओं को जोखिम में डाल रहे हैं। और हमारे उपयोगकर्ताओं को भी यह जानना चाहिए।

<पी> अंतिम लेकिन महत्वपूर्ण बात, आपको यह याद रखना चाहिए कि आप यह तय कर सकते हैं कि किसी ब्राउज़र संस्करण का समर्थन करना है या नहीं:प्रत्येक ब्राउज़र संस्करण का समर्थन करना अव्यावहारिक होगा (इंटरनेट एक्सप्लोरर 6 के बारे में सोचें)। हालाँकि, यह सुनिश्चित करना कि प्रमुख ब्राउज़रों के पिछले कुछ संस्करण समर्थित हैं, आम तौर पर एक अच्छा निर्णय है। हालाँकि, यदि आप किसी विशेष प्लेटफ़ॉर्म पर सुरक्षा प्रदान करने की योजना नहीं बनाते हैं, तो आमतौर पर यह सलाह दी जाती है कि आप अपने उपयोगकर्ताओं को बताएं।

<पी> प्रो टिप :आपको अपने उपयोगकर्ताओं को कभी भी पुराने ब्राउज़र का उपयोग करने के लिए प्रोत्साहित नहीं करना चाहिए, या सक्रिय रूप से उनका समर्थन नहीं करना चाहिए। भले ही आपने सभी आवश्यक सावधानियां बरती हों, लेकिन अन्य वेब डेवलपर्स ने ऐसा नहीं किया होगा। उपयोगकर्ताओं को प्रमुख ब्राउज़रों में से किसी एक के नवीनतम समर्थित संस्करण का उपयोग करने के लिए प्रोत्साहित करें।

विक्रेता या मानक बग?

<पी> यह तथ्य कि औसत उपयोगकर्ता तीसरे पक्ष के क्लाइंट (ब्राउज़र) के माध्यम से हमारे एप्लिकेशन तक पहुंचता है, एक स्पष्ट, सुरक्षित ब्राउज़िंग अनुभव के प्रति संकेत का एक और स्तर जोड़ता है:ब्राउज़र स्वयं एक सुरक्षा भेद्यता प्रस्तुत कर सकता है।

<पी> विक्रेता आम तौर पर पुरस्कार (उर्फ बग बाउंटी) प्रदान करते हैं ) सुरक्षा शोधकर्ताओं के लिए जो ब्राउज़र पर ही भेद्यता ढूंढ सकते हैं। ये बग आपके कार्यान्वयन से जुड़े नहीं हैं, बल्कि ब्राउज़र अपने आप सुरक्षा कैसे संभालता है, उससे जुड़े हैं।

<पी> उदाहरण के लिए, क्रोम पुरस्कार कार्यक्रम, सुरक्षा इंजीनियरों को क्रोम सुरक्षा टीम तक पहुंचने और उन्हें मिली कमजोरियों की रिपोर्ट करने की सुविधा देता है। यदि इन कमजोरियों की पुष्टि हो जाती है, तो एक पैच जारी किया जाता है, एक सुरक्षा सलाहकार नोटिस आम तौर पर जनता के लिए जारी किया जाता है, और शोधकर्ता को कार्यक्रम से एक (आमतौर पर वित्तीय) इनाम मिलता है।

<पी> Google जैसी कंपनियां अपने बग बाउंटी कार्यक्रमों में अपेक्षाकृत अच्छी मात्रा में पूंजी निवेश करती हैं, क्योंकि इससे उन्हें एप्लिकेशन में कोई समस्या पाए जाने पर वित्तीय लाभ का वादा करके शोधकर्ताओं को आकर्षित करने की अनुमति मिलती है।

<पी> बग बाउंटी कार्यक्रम में, हर कोई जीतता है:विक्रेता अपने सॉफ़्टवेयर की सुरक्षा में सुधार करने का प्रबंधन करता है, और शोधकर्ताओं को उनके निष्कर्षों के लिए भुगतान मिलता है। हम इन कार्यक्रमों पर बाद में चर्चा करेंगे, क्योंकि मेरा मानना है कि बग बाउंटी पहल सुरक्षा परिदृश्य में अपने स्वयं के अनुभाग के लायक हैं।

<पी> जेक आर्चीबाल्ड Google में एक डेवलपर वकील हैं जिन्होंने हाल ही में एक से अधिक ब्राउज़र को प्रभावित करने वाली भेद्यता की खोज की है। उन्होंने अपने प्रयासों, विभिन्न विक्रेताओं से कैसे संपर्क किया और उनकी प्रतिक्रियाओं को एक दिलचस्प ब्लॉग पोस्ट में दर्ज किया, जिसे मैं आपको पढ़ने की सलाह दूंगा।

डेवलपर्स के लिए एक ब्राउज़र

<पी> अब तक, हमें एक बहुत ही सरल लेकिन महत्वपूर्ण अवधारणा समझनी चाहिए थी:ब्राउज़र केवल HTTP क्लाइंट हैं जो औसत इंटरनेट सर्फर के लिए बनाए गए हैं .

<पी> वे निश्चित रूप से एक प्लेटफ़ॉर्म के नंगे HTTP क्लाइंट से अधिक शक्तिशाली हैं (NodeJS के require('http') के बारे में सोचें) , उदाहरण के लिए), लेकिन दिन के अंत में, वे सरल HTTP क्लाइंट का "सिर्फ" एक प्राकृतिक विकास हैं।

<पी> डेवलपर्स के रूप में, हमारी पसंद का HTTP क्लाइंट संभवतः डेनियल स्टेनबर्ग द्वारा लिखित कर्ल है, जो वेब डेवलपर्स द्वारा दैनिक आधार पर उपयोग किए जाने वाले सबसे लोकप्रिय सॉफ्टवेयर प्रोग्रामों में से एक है। यह हमें हमारी कमांड लाइन से एक HTTP अनुरोध भेजकर ऑन-द-फ्लाई HTTP एक्सचेंज करने की अनुमति देता है:

$ curl -I localhost:8080
HTTP/1.1 200 OKserver: ecstatic-2.2.1Content-Type: text/htmletag: "23724049-4096-"2018-07-20T11:20:35.526Z""last-modified: Fri, 20 Jul 2018 11:20:35 GMTcache-control: max-age=3600Date: Fri, 20 Jul 2018 11:21:02 GMTConnection: keep-alive
<पी> उपरोक्त उदाहरण में, हमने localhost:8080/ पर दस्तावेज़ का अनुरोध किया है , और एक स्थानीय सर्वर ने सफलतापूर्वक उत्तर दिया।

<पी> प्रतिक्रिया के मुख्य भाग को कमांड लाइन पर डंप करने के बजाय, यहां हमने -I का उपयोग किया है ध्वज जो कर्ल को बताता है कि हम केवल प्रतिक्रिया शीर्षलेखों में रुचि रखते हैं। इसे एक कदम आगे बढ़ाते हुए, हम cURL को उसके द्वारा किए गए वास्तविक अनुरोध सहित थोड़ी और जानकारी डंप करने का निर्देश दे सकते हैं, ताकि हम इस संपूर्ण HTTP एक्सचेंज पर बेहतर नज़र डाल सकें। हमें जिस विकल्प का उपयोग करने की आवश्यकता है वह -v है (क्रिया):

$ curl -I -v localhost:8080* Rebuilt URL to: localhost:8080/* Trying 127.0.0.1...* Connected to localhost (127.0.0.1) port 8080 (#0)> HEAD / HTTP/1.1> Host: localhost:8080> User-Agent: curl/7.47.0> Accept: */*>< HTTP/1.1 200 OKHTTP/1.1 200 OK< server: ecstatic-2.2.1server: ecstatic-2.2.1< Content-Type: text/htmlContent-Type: text/html< etag: "23724049-4096-"2018-07-20T11:20:35.526Z""etag: "23724049-4096-"2018-07-20T11:20:35.526Z""< last-modified: Fri, 20 Jul 2018 11:20:35 GMTlast-modified: Fri, 20 Jul 2018 11:20:35 GMT< cache-control: max-age=3600cache-control: max-age=3600< Date: Fri, 20 Jul 2018 11:25:55 GMTDate: Fri, 20 Jul 2018 11:25:55 GMT< Connection: keep-aliveConnection: keep-alive
<* Connection #0 to host localhost left intact
<पी> लगभग यही जानकारी मुख्यधारा के ब्राउज़रों में उनके DevTools के माध्यम से उपलब्ध है।

<पी> जैसा कि हमने देखा, ब्राउज़र विस्तृत HTTP क्लाइंट से अधिक कुछ नहीं हैं। निश्चित रूप से, वे भारी मात्रा में सुविधाएँ जोड़ते हैं (क्रेडेंशियल प्रबंधन, बुकमार्किंग, इतिहास आदि के बारे में सोचें) लेकिन सच्चाई यह है कि वे मनुष्यों के लिए HTTP क्लाइंट के रूप में पैदा हुए थे। यह महत्वपूर्ण है, क्योंकि ज्यादातर मामलों में आपको अपने वेब एप्लिकेशन की सुरक्षा का परीक्षण करने के लिए ब्राउज़र की आवश्यकता नहीं होती है, क्योंकि आप बस इसे "कर्ल" कर सकते हैं और प्रतिक्रिया पर एक नज़र डाल सकते हैं।

<पी> एक आखिरी बात जो मैं बताना चाहूंगा, वह यह है कि कुछ भी ब्राउज़र हो सकता है . यदि आपके पास एक मोबाइल एप्लिकेशन है जो HTTP प्रोटोकॉल के माध्यम से एपीआई का उपभोग करता है, तो ऐप आपका ब्राउज़र है - यह सिर्फ एक अत्यधिक अनुकूलित एप्लिकेशन होता है जिसे आपने स्वयं बनाया है, जो केवल एक विशिष्ट प्रकार की HTTP प्रतिक्रियाओं को समझता है (आपके अपने एपीआई से)।

HTTP प्रोटोकॉल में

<पी> जैसा कि हमने बताया, HTTP एक्सचेंज औरप्रतिपादनकरना चरण वे हैं जिन्हें हम अधिकतर कवर करने जा रहे हैं, क्योंकि वे सबसे बड़ी संख्या में हमला वेक्टर प्रदान करते हैं दुर्भावनापूर्ण उपयोगकर्ताओं के लिए.

<पी> अगले लेख में, हम HTTP प्रोटोकॉल पर गहराई से नज़र डालने जा रहे हैं और यह समझने की कोशिश करेंगे कि HTTP एक्सचेंजों को सुरक्षित करने के लिए हमें क्या उपाय करने चाहिए।

<पी> मूल रूप से odino.org पर प्रकाशित (29 जुलाई 2018)।
_आप मुझे ट्विटर पर फ़ॉलो कर सकते हैं - टिप्पणियों का स्वागत है!_ ?

<पी> मुफ़्त में कोड करना सीखें. फ्रीकोडकैंप के ओपन सोर्स पाठ्यक्रम ने 40,000 से अधिक लोगों को डेवलपर्स के रूप में नौकरी पाने में मदद की है। आरंभ करें


  1. शीर्ष 8 मैक-एक्सक्लूसिव ऐप्स जो आपको विंडोज़ पर नहीं मिलेंगे शीर्ष 8 मैक-एक्सक्लूसिव ऐप्स जो आपको विंडोज़ पर नहीं मिलेंगे

    1 नवंबर, 2024, 4:30 अपराह्न EDT पर प्रकाशित विश्लेषणात्मक रसायन विज्ञान में अपनी पहली डिग्री पूरी करते समय एल्विन को लेखन के प्रति अपने प्रेम का पता चला। एक प्रौद्योगिकी उत्साही के रूप में, उन्होंने 2019 में प्रौद्योगिकी के विभिन्न पहलुओं पर काम करते हुए एक तकनीकी लेखक के रूप में अपना लेखन करियर श

  1. रक्तचाप, वजन और कसरत को ट्रैक करने के लिए Google फिट का उपयोग कैसे करें? रक्तचाप, वजन और कसरत को ट्रैक करने के लिए Google फिट का उपयोग कैसे करें?

    हम सभी फिट और स्वस्थ रहना चाहते हैं लेकिन अक्सर हम ऐसा करने में असफल हो जाते हैं, और हम बहाने बनाते हैं जैसे हमारे पास समय नहीं है, हम नहीं जानते कि हमारी गतिविधियों को कैसे ट्रैक किया जाए आदि। अपने स्वास्थ्य का प्रबंधन करने और अपनी शारीरिक गतिविधियों पर नज़र रखने के लिए हम निश्चित रूप से हमारे लिए

  1. Excel में पंक्ति पदानुक्रम कैसे जोड़ें (2 आसान तरीके) Excel में पंक्ति पदानुक्रम कैसे जोड़ें (2 आसान तरीके)

    पंक्ति पदानुक्रम डेटा को आसानी से पढ़ने में मददगार होते हैं जब हमारे पास डेटा की पंक्तियाँ होती हैं जो एक दूसरे से जुड़ी होती हैं। यदि आप एक्सेल में पंक्ति पदानुक्रम जोड़ना चाहते हैं . निम्नलिखित लेख में, हमने 2 आसान तरीकों . का वर्णन किया है कार्य को सुचारू रूप से करने के लिए। जब आप इस लेख को पढ