सर्वर-साइड स्क्रिप्टिंग: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
{{Short description|Technique used in web development}}
{{Short description|Technique used in web development}}
{{See also|Dynamic web page#Server-side scripting}}[[File:Server-side websites programming languages.PNG|thumb|सर्वर साइड स्क्रिप्टिंग में प्रयुक्त भाषाएँ।]]सर्वर-साइड [[भाषा का अंकन]] डेवलपमेंट में उपयोग की जाने वाली एक तकनीक है जिसमें [[वेब विकास]] पर स्क्रिप्टिंग भाषाओं को नियोजित करना शामिल है जो वेबसाइट के लिए प्रत्येक उपयोगकर्ता (क्लाइंट) के अनुरोध के लिए अनुकूलित प्रतिक्रिया उत्पन्न करता है। वैकल्पिक वेब सर्वर के लिए एक [[स्थिर वेब पेज]] देने के लिए है। लिपियों को किसी भी उपलब्ध सर्वर-साइड स्क्रिप्टिंग भाषा में लिखा जा सकता है (नीचे देखें)। सर्वर-साइड स्क्रिप्टिंग को [[क्लाइंट-साइड स्क्रिप्टिंग]] से अलग किया जाता है, जहां एम्बेडेड स्क्रिप्ट, जैसे कि [[जावास्क्रिप्ट]], [[वेब ब्राउज़र]] में क्लाइंट-साइड चलाए जाते हैं, लेकिन दोनों तकनीकों को अक्सर एक साथ उपयोग किया जाता है।
{{See also|Dynamic web page#Server-side scripting}}[[File:Server-side websites programming languages.PNG|thumb|सर्वर साइड स्क्रिप्टिंग में प्रयुक्त भाषाएँ।]]सर्वर-साइड [[भाषा का अंकन]] वेब विकास में उपयोग की जाने वाली प्रौद्योगिकी है जिसमें [[वेब विकास]] पर स्क्रिप्टिंग भाषाओं को नियोजित करना सम्मिलित है जो वेबसाइट के लिए प्रत्येक उपयोगकर्ता (क्लाइंट) के अनुरोध के लिए अनुकूलित प्रतिक्रिया उत्पन्न करता है। इसका विकल्प वेब सर्वर के लिए [[स्थिर वेब पेज]] वितरित करना है। लिपियों को किसी भी उपलब्ध सर्वर-साइड स्क्रिप्टिंग भाषा में लिखा जा सकता है। सर्वर-साइड स्क्रिप्टिंग को [[क्लाइंट-साइड स्क्रिप्टिंग]] से अलग किया जाता है, जहां एम्बेडेड स्क्रिप्ट, जैसे कि [[जावास्क्रिप्ट]], [[वेब ब्राउज़र]] में क्लाइंट-साइड चलाए जाते हैं, परन्तु दोनों प्रौद्योगिकों को प्रायः साथ उपयोग किया जाता है।


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


जब सर्वर आमतौर पर उपयोग किए जाने वाले तरीके से डेटा प्रदान करता है, उदाहरण के लिए, [[ हाइपरटेक्स्ट परहस्त शिष्टाचार ]] या [[फाइल ट्रांसफर प्रोटोकॉल]] [[प्रोटोकॉल (कंप्यूटिंग)]] के अनुसार, उपयोगकर्ताओं के पास कई क्लाइंट प्रोग्रामों की अपनी पसंद हो सकती है (अधिकांश आधुनिक वेब ब्राउज़र डेटा का अनुरोध और प्राप्त कर सकते हैं) उन दोनों प्रोटोकॉल का उपयोग करके)। अधिक विशिष्ट अनुप्रयोगों के मामले में, प्रोग्रामर अपना स्वयं का सर्वर, क्लाइंट और संचार प्रोटोकॉल लिख सकते हैं, जिसका उपयोग केवल एक दूसरे के साथ किया जा सकता है।
जब सर्वर आमतौर पर उपयोग किए जाने वाले तरीके से डेटा प्रदान करता है, उदाहरण के लिए, [[ हाइपरटेक्स्ट परहस्त शिष्टाचार ]] या [[फाइल ट्रांसफर प्रोटोकॉल]] [[प्रोटोकॉल (कंप्यूटिंग)]] के अनुसार, उपयोगकर्ताओं के पास कई क्लाइंट प्रोग्रामों की अपनी पसंद हो सकती है (अधिकांश आधुनिक वेब ब्राउज़र डेटा का अनुरोध और प्राप्त कर सकते हैं) उन दोनों प्रोटोकॉल का उपयोग करके)। अधिक विशिष्ट अनुप्रयोगों के मामले में, प्रोग्रामर अपना स्वयं का सर्वर, क्लाइंट और संचार प्रोटोकॉल लिख सकते हैं, जिसका उपयोग केवल दूसरे के साथ किया जा सकता है।


ऐसे प्रोग्राम जो उपयोगकर्ता के स्थानीय कंप्यूटर पर बिना किसी नेटवर्क पर डेटा भेजे या प्राप्त किए चलते हैं, उन्हें क्लाइंट नहीं माना जाता है, और इसलिए ऐसे प्रोग्रामों के संचालन को क्लाइंट-साइड ऑपरेशन नहीं माना जाएगा।
ऐसे प्रोग्राम जो उपयोगकर्ता के स्थानीय कंप्यूटर पर बिना किसी नेटवर्क पर डेटा भेजे या प्राप्त किए चलते हैं, उन्हें क्लाइंट नहीं माना जाता है, और इसलिए ऐसे प्रोग्रामों के संचालन को क्लाइंट-साइड ऑपरेशन नहीं माना जाएगा।
Line 10: Line 10:
== इतिहास ==
== इतिहास ==
नेटस्केप ने [[नेटस्केप एंटरप्राइज़ सर्वर]] के साथ सर्वर-साइड स्क्रिप्टिंग के लिए जावास्क्रिप्ट का कार्यान्वयन शुरू किया, जिसे पहली बार दिसंबर, 1994 में जारी किया गया (ब्राउज़रों के लिए जावास्क्रिप्ट जारी करने के तुरंत बाद)।<ref name = "Newscape JavaScript Guide-1998">{{cite web|title=सर्वर-साइड जावास्क्रिप्ट गाइड|publisher=Netscape Communications Corporation|year=1998|url=http://docs.oracle.com/cd/E19957-01/816-6411-10/getstart.htm|access-date=2012-04-25}}</ref><ref name = "Morgan-Netcape LiveWie">{{cite web|title=Using Netscape™ LiveWire™, Special Edition | author=Mike Morgan | url = http://vampire.rulez.org/onlinedoc/book/NetscapeLiveWire/ch6.htm | year = 1996 | publisher = Que }}</ref>
नेटस्केप ने [[नेटस्केप एंटरप्राइज़ सर्वर]] के साथ सर्वर-साइड स्क्रिप्टिंग के लिए जावास्क्रिप्ट का कार्यान्वयन शुरू किया, जिसे पहली बार दिसंबर, 1994 में जारी किया गया (ब्राउज़रों के लिए जावास्क्रिप्ट जारी करने के तुरंत बाद)।<ref name = "Newscape JavaScript Guide-1998">{{cite web|title=सर्वर-साइड जावास्क्रिप्ट गाइड|publisher=Netscape Communications Corporation|year=1998|url=http://docs.oracle.com/cd/E19957-01/816-6411-10/getstart.htm|access-date=2012-04-25}}</ref><ref name = "Morgan-Netcape LiveWie">{{cite web|title=Using Netscape™ LiveWire™, Special Edition | author=Mike Morgan | url = http://vampire.rulez.org/onlinedoc/book/NetscapeLiveWire/ch6.htm | year = 1996 | publisher = Que }}</ref>
बोस्टन, एमए टेलीविजन स्टेशन [[ WCVB टीवी ]] के लिए पहली वेबसाइट विकसित करते समय सर्वर-साइड स्क्रिप्टिंग का उपयोग बाद में 1995 की शुरुआत में [[फ्रेड डुफ्रेसने]] द्वारा किया गया था। तकनीक [http://patft.uspto.gov/netacgi/nph-Parser?Sect2=PTO1&Sect2=HITOFF&p=1&u=/netahtml/PTO/search-bool.html&r=1&f=G&l=50&d=PALL&RefSrch=yes&Query में वर्णित है =पीएन/5835712 यूएस पेटेंट 5835712]। पेटेंट 1998 में जारी किया गया था और अब इसका स्वामित्व [[ खुला आविष्कार नेटवर्क ]] (OIN) के पास है। 2010 में ओआईएन ने सर्वर-साइड स्क्रिप्टिंग पर अपने काम के लिए फ्रेड डुफ्रेसने को एक [https://web.archive.org/web/20111110192158/http://openinventionnetwork.com/press_release06_07_11.php विशिष्ट आविष्कारक] नामित किया।
बोस्टन, एमए टेलीविजन स्टेशन [[ WCVB टीवी ]] के लिए पहली वेबसाइट विकसित करते समय सर्वर-साइड स्क्रिप्टिंग का उपयोग बाद में 1995 की शुरुआत में [[फ्रेड डुफ्रेसने]] द्वारा किया गया था। प्रौद्योगिकी [http://patft.uspto.gov/netacgi/nph-Parser?Sect2=PTO1&Sect2=HITOFF&p=1&u=/netahtml/PTO/search-bool.html&r=1&f=G&l=50&d=PALL&RefSrch=yes&Query में वर्णित है =पीएन/5835712 यूएस पेटेंट 5835712]। पेटेंट 1998 में जारी किया गया था और अब इसका स्वामित्व [[ खुला आविष्कार नेटवर्क ]] (OIN) के पास है। 2010 में ओआईएन ने सर्वर-साइड स्क्रिप्टिंग पर अपने काम के लिए फ्रेड डुफ्रेसने को [https://web.archive.org/web/20111110192158/http://openinventionnetwork.com/press_release06_07_11.php विशिष्ट आविष्कारक] नामित किया।


== स्पष्टीकरण ==
== स्पष्टीकरण ==
वेब के पहले के दिनों में, [[ कॉमन गेटवे इंटरफ़ेस ]] (CGI) का उपयोग करके C (प्रोग्रामिंग लैंग्वेज) प्रोग्राम, [[पर्ल]] स्क्रिप्ट और [[ खोल स्क्रिप्ट ]] के संयोजन का उपयोग करके सर्वर-साइड स्क्रिप्टिंग लगभग विशेष रूप से की जाती थी। उन स्क्रिप्ट्स को [[ऑपरेटिंग सिस्टम]] द्वारा निष्पादित किया गया था, और परिणाम वेबसर्वर द्वारा वापस दिए गए थे। कई आधुनिक वेब सर्वर सीधे वेब सर्वर द्वारा या वेब सर्वर पर एक्सटेंशन मॉड्यूल (जैसे mod_perl या mod_php) के माध्यम से [[सक्रिय सर्वर पेज]], [[जावा सर्वर पेज]], पर्ल, [[पीएचपी]] और [[रूबी (प्रोग्रामिंग भाषा)]] जैसी ऑन-लाइन स्क्रिप्टिंग भाषाओं को निष्पादित कर सकते हैं। उदाहरण के लिए, [[WebDNA]] में अपना स्वयं का एम्बेडेड डेटाबेस सिस्टम शामिल है। स्क्रिप्टिंग के किसी भी रूप (यानी, CGI या प्रत्यक्ष निष्पादन) का उपयोग जटिल बहु-पृष्ठ साइटों के निर्माण के लिए किया जा सकता है, लेकिन बाहरी दुभाषियों को कॉल की कम संख्या के कारण प्रत्यक्ष निष्पादन के परिणामस्वरूप आमतौर पर कम ओवरहेड होता है।
वेब के पहले के दिनों में, [[ कॉमन गेटवे इंटरफ़ेस ]] (CGI) का उपयोग करके C (प्रोग्रामिंग लैंग्वेज) प्रोग्राम, [[पर्ल]] स्क्रिप्ट और [[ खोल स्क्रिप्ट ]] के संयोजन का उपयोग करके सर्वर-साइड स्क्रिप्टिंग लगभग विशेष रूप से की जाती थी। उन स्क्रिप्ट्स को [[ऑपरेटिंग सिस्टम]] द्वारा निष्पादित किया गया था, और परिणाम वेबसर्वर द्वारा वापस दिए गए थे। कई आधुनिक वेब सर्वर सीधे वेब सर्वर द्वारा या वेब सर्वर पर एक्सटेंशन मॉड्यूल (जैसे mod_perl या mod_php) के माध्यम से [[सक्रिय सर्वर पेज]], [[जावा सर्वर पेज]], पर्ल, [[पीएचपी]] और [[रूबी (प्रोग्रामिंग भाषा)]] जैसी ऑन-लाइन स्क्रिप्टिंग भाषाओं को निष्पादित कर सकते हैं। उदाहरण के लिए, [[WebDNA]] में अपना स्वयं का एम्बेडेड डेटाबेस सिस्टम सम्मिलित है। स्क्रिप्टिंग के किसी भी रूप (यानी, CGI या प्रत्यक्ष निष्पादन) का उपयोग जटिल बहु-पृष्ठ साइटों के निर्माण के लिए किया जा सकता है, परन्तु बाहरी दुभाषियों को कॉल की कम संख्या के कारण प्रत्यक्ष निष्पादन के परिणामस्वरूप आमतौर पर कम ओवरहेड होता है।


डायनेमिक वेबसाइटें कभी-कभी कस्टम वेब एप्लिकेशन सर्वर का उपयोग करती हैं, जैसे कि [[ कांच की मछली ]], [[ प्लेट (सॉफ्टवेयर) ]] और पायथन (प्रोग्रामिंग लैंग्वेज) की बेस HTTP सर्वर लाइब्रेरी, हालांकि कुछ इसे सर्वर-साइड स्क्रिप्टिंग नहीं मान सकते हैं। गतिशील वेब-आधारित स्क्रिप्टिंग तकनीकों का उपयोग करते समय, डेवलपर्स को क्लाइंट और सर्वर के बीच तार्किक, अस्थायी और भौतिक अलगाव की गहरी समझ होनी चाहिए। सर्वर-साइड कोड के निष्पादन को ट्रिगर करने के लिए उपयोगकर्ता की कार्रवाई के लिए, उदाहरण के लिए, क्लासिक एएसपी के साथ काम करने वाले डेवलपर को स्पष्ट रूप से उपयोगकर्ता के ब्राउज़र को वेबसर्वर से अनुरोध करने के लिए कहना चाहिए।
डायनेमिक वेबसाइटें कभी-कभी कस्टम वेब एप्लिकेशन सर्वर का उपयोग करती हैं, जैसे कि [[ कांच की मछली ]], [[ प्लेट (सॉफ्टवेयर) ]] और पायथन (प्रोग्रामिंग लैंग्वेज) की बेस HTTP सर्वर लाइब्रेरी, हालांकि कुछ इसे सर्वर-साइड स्क्रिप्टिंग नहीं मान सकते हैं। गतिशील वेब-आधारित स्क्रिप्टिंग प्रौद्योगिकीों का उपयोग करते समय, डेवलपर्स को क्लाइंट और सर्वर के बीच तार्किक, अस्थायी और भौतिक अलगाव की गहरी समझ होनी चाहिए। सर्वर-साइड कोड के निष्पादन को ट्रिगर करने के लिए उपयोगकर्ता की कार्रवाई के लिए, उदाहरण के लिए, क्लासिक एएसपी के साथ काम करने वाले डेवलपर को स्पष्ट रूप से उपयोगकर्ता के ब्राउज़र को वेबसर्वर से अनुरोध करने के लिए कहना चाहिए।


सर्वर-साइड स्क्रिप्ट को क्लाइंट के बजाय सर्वर द्वारा पूरी तरह से प्रोसेस किया जाता है। जब क्लाइंट सर्वर-साइड स्क्रिप्ट वाले पेज का अनुरोध करता है, तो एप्लिकेशन सर्वर स्क्रिप्ट को प्रोसेस करता है और क्लाइंट को एक HTML पेज लौटाता है।
सर्वर-साइड स्क्रिप्ट को क्लाइंट के बजाय सर्वर द्वारा पूरी तरह से प्रोसेस किया जाता है। जब क्लाइंट सर्वर-साइड स्क्रिप्ट वाले पेज का अनुरोध करता है, तो एप्लिकेशन सर्वर स्क्रिप्ट को प्रोसेस करता है और क्लाइंट को HTML पेज लौटाता है।


== [[सर्वर-साइड रेंडरिंग]] ==
== [[सर्वर-साइड रेंडरिंग]] ==
वेब की शुरुआत में, सामग्री विशुद्ध रूप से बैक एंड पर उत्पन्न हुई थी। फ्रंट एंड [[एक पेज का आवेदन]] को बड़े पैमाने पर अपनाने के बाद, क्लाइंट एप्लिकेशन का उपयोग करके HTML उत्पन्न करने के लिए एक नया दृष्टिकोण पेश किया गया था, लेकिन बैक एंड पर। सर्वर-साइड रेंडरिंग का उपयोग करने वाले फ्रेमवर्क के उदाहरण हैं Next.js, Nuxt.js और Nest.js। वे सर्वर की सामग्री उत्पन्न करने के लिए क्रमशः React.js, Vue.js और Angular (वेब ​​फ्रेमवर्क) का उपयोग करते हैं।
वेब की शुरुआत में, सामग्री विशुद्ध रूप से बैक एंड पर उत्पन्न हुई थी। फ्रंट एंड [[एक पेज का आवेदन|पेज का आवेदन]] को बड़े पैमाने पर अपनाने के बाद, क्लाइंट एप्लिकेशन का उपयोग करके HTML उत्पन्न करने के लिए नया दृष्टिकोण पेश किया गया था, परन्तु बैक एंड पर। सर्वर-साइड रेंडरिंग का उपयोग करने वाले फ्रेमवर्क के उदाहरण हैं Next.js, Nuxt.js और Nest.js। वे सर्वर की सामग्री उत्पन्न करने के लिए क्रमशः React.js, Vue.js और Angular (वेब ​​फ्रेमवर्क) का उपयोग करते हैं।


== सर्वर-साइड जनरेशन ==
== सर्वर-साइड जनरेशन ==
एक वेबसाइट के लिए सामग्री तैयार करने की एसएसआर तकनीक के समान एक और सर्वर-साइड पीढ़ी का उपयोग कर रहा है। यह तकनीक ऐसे एप्लिकेशन का उपयोग करती है जो स्थिर HTML पृष्ठ बनाती है और फिर उन फ़ाइलों को सर्वर पर भेज दिया जाता है। फ़ाइल निर्माण पूरी तरह से अलग कंप्यूटर पर हो सकता है उदाहरण के लिए [[निरंतर वितरण]] का उपयोग करना। [[जेकिल (सॉफ्टवेयर)]], [[गैट्सबी (सॉफ्टवेयर)]] या एलेवेंटी (सॉफ्टवेयर) एसएसजी टूल्स के उदाहरण हैं। उन साइटों को अक्सर [[Netlify]] या [[GitHub]] पेज पर होस्ट किया जाता है। गिटहब जेकिल परियोजनाओं का भी समर्थन करता है जहां गिट में परिवर्तन जोड़े जाने पर यह स्वचालित रूप से साइट बनाता है।
किसी वेबसाइट के लिए सामग्री तैयार करने की एसएसआर प्रौद्योगिकी के समान सर्वर-साइड पीढ़ी का उपयोग है। यह प्रौद्योगिकी ऐसे एप्लिकेशन का उपयोग करती है जो स्थिर एचटीएमएल पृष्ठ बनाती है और फिर उन फ़ाइलों को सर्वर पर भेज दिया जाता है। फ़ाइल निर्माण पूर्ण रूप से अलग कंप्यूटर पर हो सकता है उदाहरण के लिए [[निरंतर वितरण]] का उपयोग करना। [[जेकिल (सॉफ्टवेयर)]], [[गैट्सबी (सॉफ्टवेयर)]] या एलेवेंटी (सॉफ्टवेयर) एसएसजी टूल्स के उदाहरण हैं। उन साइटों को प्रायः [[Netlify|नेटलिफाई]] या [[GitHub|गिटहब]] पेज पर होस्ट किया जाता है। गिटहब जेकिल परियोजनाओं का भी समर्थन करता है जहां गिट में परिवर्तन जोड़े जाने पर यह स्वचालित रूप से साइट बनाता है।


== भाषाएँ ==
== भाषाएँ ==


कई सर्वर-साइड स्क्रिप्टिंग भाषाएँ उपलब्ध हैं, जिनमें शामिल हैं:
कई सर्वर-साइड स्क्रिप्टिंग भाषाएँ उपलब्ध हैं, जिनमें सम्मिलित हैं:
* एक्टिव वीएफपी (* .एवीएफपी)
* एक्टिव वीएफपी (* .एवीएफपी)
* सक्रिय सर्वर पृष्ठ (*.एएसपी)
* सक्रिय सर्वर पृष्ठ (*.एएसपी)
Line 54: Line 54:
* क्लाइंट-साइड स्क्रिप्टिंग
* क्लाइंट-साइड स्क्रिप्टिंग
* [[सामग्री प्रबंधन प्रणाली]] (सीएमएस)
* [[सामग्री प्रबंधन प्रणाली]] (सीएमएस)
* [[एज साइड शामिल है]]
* [[एज साइड शामिल है|एज साइड सम्मिलित है]]
* जावा सर्वर पेज
* जावा सर्वर पेज
* नोड.जेएस
* नोड.जेएस
Line 61: Line 61:
* प्लैक (सॉफ्टवेयर)|पर्ल/प्लैक
* प्लैक (सॉफ्टवेयर)|पर्ल/प्लैक
* पीएचपी
* पीएचपी
* [[सर्वर साइड शामिल है]] (एसएसआई)
* [[सर्वर साइड शामिल है|सर्वर साइड सम्मिलित है]] (एसएसआई)
* वेब विकास
* वेब विकास



Revision as of 21:11, 27 June 2023

सर्वर साइड स्क्रिप्टिंग में प्रयुक्त भाषाएँ।

सर्वर-साइड भाषा का अंकन वेब विकास में उपयोग की जाने वाली प्रौद्योगिकी है जिसमें वेब विकास पर स्क्रिप्टिंग भाषाओं को नियोजित करना सम्मिलित है जो वेबसाइट के लिए प्रत्येक उपयोगकर्ता (क्लाइंट) के अनुरोध के लिए अनुकूलित प्रतिक्रिया उत्पन्न करता है। इसका विकल्प वेब सर्वर के लिए स्थिर वेब पेज वितरित करना है। लिपियों को किसी भी उपलब्ध सर्वर-साइड स्क्रिप्टिंग भाषा में लिखा जा सकता है। सर्वर-साइड स्क्रिप्टिंग को क्लाइंट-साइड स्क्रिप्टिंग से अलग किया जाता है, जहां एम्बेडेड स्क्रिप्ट, जैसे कि जावास्क्रिप्ट, वेब ब्राउज़र में क्लाइंट-साइड चलाए जाते हैं, परन्तु दोनों प्रौद्योगिकों को प्रायः साथ उपयोग किया जाता है।

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

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

ऐसे प्रोग्राम जो उपयोगकर्ता के स्थानीय कंप्यूटर पर बिना किसी नेटवर्क पर डेटा भेजे या प्राप्त किए चलते हैं, उन्हें क्लाइंट नहीं माना जाता है, और इसलिए ऐसे प्रोग्रामों के संचालन को क्लाइंट-साइड ऑपरेशन नहीं माना जाएगा।

इतिहास

नेटस्केप ने नेटस्केप एंटरप्राइज़ सर्वर के साथ सर्वर-साइड स्क्रिप्टिंग के लिए जावास्क्रिप्ट का कार्यान्वयन शुरू किया, जिसे पहली बार दिसंबर, 1994 में जारी किया गया (ब्राउज़रों के लिए जावास्क्रिप्ट जारी करने के तुरंत बाद)।[1][2] बोस्टन, एमए टेलीविजन स्टेशन WCVB टीवी के लिए पहली वेबसाइट विकसित करते समय सर्वर-साइड स्क्रिप्टिंग का उपयोग बाद में 1995 की शुरुआत में फ्रेड डुफ्रेसने द्वारा किया गया था। प्रौद्योगिकी में वर्णित है =पीएन/5835712 यूएस पेटेंट 5835712। पेटेंट 1998 में जारी किया गया था और अब इसका स्वामित्व खुला आविष्कार नेटवर्क (OIN) के पास है। 2010 में ओआईएन ने सर्वर-साइड स्क्रिप्टिंग पर अपने काम के लिए फ्रेड डुफ्रेसने को विशिष्ट आविष्कारक नामित किया।

स्पष्टीकरण

वेब के पहले के दिनों में, कॉमन गेटवे इंटरफ़ेस (CGI) का उपयोग करके C (प्रोग्रामिंग लैंग्वेज) प्रोग्राम, पर्ल स्क्रिप्ट और खोल स्क्रिप्ट के संयोजन का उपयोग करके सर्वर-साइड स्क्रिप्टिंग लगभग विशेष रूप से की जाती थी। उन स्क्रिप्ट्स को ऑपरेटिंग सिस्टम द्वारा निष्पादित किया गया था, और परिणाम वेबसर्वर द्वारा वापस दिए गए थे। कई आधुनिक वेब सर्वर सीधे वेब सर्वर द्वारा या वेब सर्वर पर एक्सटेंशन मॉड्यूल (जैसे mod_perl या mod_php) के माध्यम से सक्रिय सर्वर पेज, जावा सर्वर पेज, पर्ल, पीएचपी और रूबी (प्रोग्रामिंग भाषा) जैसी ऑन-लाइन स्क्रिप्टिंग भाषाओं को निष्पादित कर सकते हैं। उदाहरण के लिए, WebDNA में अपना स्वयं का एम्बेडेड डेटाबेस सिस्टम सम्मिलित है। स्क्रिप्टिंग के किसी भी रूप (यानी, CGI या प्रत्यक्ष निष्पादन) का उपयोग जटिल बहु-पृष्ठ साइटों के निर्माण के लिए किया जा सकता है, परन्तु बाहरी दुभाषियों को कॉल की कम संख्या के कारण प्रत्यक्ष निष्पादन के परिणामस्वरूप आमतौर पर कम ओवरहेड होता है।

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

सर्वर-साइड स्क्रिप्ट को क्लाइंट के बजाय सर्वर द्वारा पूरी तरह से प्रोसेस किया जाता है। जब क्लाइंट सर्वर-साइड स्क्रिप्ट वाले पेज का अनुरोध करता है, तो एप्लिकेशन सर्वर स्क्रिप्ट को प्रोसेस करता है और क्लाइंट को HTML पेज लौटाता है।

सर्वर-साइड रेंडरिंग

वेब की शुरुआत में, सामग्री विशुद्ध रूप से बैक एंड पर उत्पन्न हुई थी। फ्रंट एंड पेज का आवेदन को बड़े पैमाने पर अपनाने के बाद, क्लाइंट एप्लिकेशन का उपयोग करके HTML उत्पन्न करने के लिए नया दृष्टिकोण पेश किया गया था, परन्तु बैक एंड पर। सर्वर-साइड रेंडरिंग का उपयोग करने वाले फ्रेमवर्क के उदाहरण हैं Next.js, Nuxt.js और Nest.js। वे सर्वर की सामग्री उत्पन्न करने के लिए क्रमशः React.js, Vue.js और Angular (वेब ​​फ्रेमवर्क) का उपयोग करते हैं।

सर्वर-साइड जनरेशन

किसी वेबसाइट के लिए सामग्री तैयार करने की एसएसआर प्रौद्योगिकी के समान सर्वर-साइड पीढ़ी का उपयोग है। यह प्रौद्योगिकी ऐसे एप्लिकेशन का उपयोग करती है जो स्थिर एचटीएमएल पृष्ठ बनाती है और फिर उन फ़ाइलों को सर्वर पर भेज दिया जाता है। फ़ाइल निर्माण पूर्ण रूप से अलग कंप्यूटर पर हो सकता है उदाहरण के लिए निरंतर वितरण का उपयोग करना। जेकिल (सॉफ्टवेयर), गैट्सबी (सॉफ्टवेयर) या एलेवेंटी (सॉफ्टवेयर) एसएसजी टूल्स के उदाहरण हैं। उन साइटों को प्रायः नेटलिफाई या गिटहब पेज पर होस्ट किया जाता है। गिटहब जेकिल परियोजनाओं का भी समर्थन करता है जहां गिट में परिवर्तन जोड़े जाने पर यह स्वचालित रूप से साइट बनाता है।

भाषाएँ

कई सर्वर-साइड स्क्रिप्टिंग भाषाएँ उपलब्ध हैं, जिनमें सम्मिलित हैं:

यह भी देखें

संदर्भ

  1. "सर्वर-साइड जावास्क्रिप्ट गाइड". Netscape Communications Corporation. 1998. Retrieved 2012-04-25.
  2. Mike Morgan (1996). "Using Netscape™ LiveWire™, Special Edition". Que.


बाहरी संबंध