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

From Vigyanwiki
(Created page with "{{Short description|Technique used in web development}} {{See also|Dynamic web page#Server-side scripting}} {{Multiple issues| {{Expert needed|technology|reason=unfocused, sca...")
 
 
(16 intermediate revisions by 4 users not shown)
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}}
{{See also|गत्यात्मक वेब पेज#सर्वर-साइड स्क्रिप्टिंग}}[[File:Server-side websites programming languages.PNG|thumb|सर्वर साइड स्क्रिप्टिंग में प्रयुक्त भाषाएँ हैं।]]'''सर्वर-साइड स्क्रिप्टिंग''' वेब विकास में उपयोग की जाने वाली प्रौद्योगिकी है जिसमें [[वेब विकास]] पर स्क्रिप्टिंग भाषाओं को नियोजित करना सम्मिलित है जो वेबसाइट के लिए प्रत्येक उपयोगकर्ता (क्लाइंट) के अनुरोध के लिए अनुकूलित प्रतिक्रिया उत्पन्न करता है। इसका विकल्प वेब सर्वर के लिए [[स्थिर वेब पेज|स्थिर वेब पृष्ठ]] वितरित करना है। लिपियों को किसी भी उपलब्ध सर्वर-साइड स्क्रिप्टिंग भाषा में लिखा जा सकता है। सर्वर-साइड स्क्रिप्टिंग को [[क्लाइंट-साइड स्क्रिप्टिंग]] से भिन्न किया जाता है, जहां एम्बेडेड स्क्रिप्ट, जैसे कि [[जावास्क्रिप्ट]], [[वेब ब्राउज़र]] में क्लाइंट-साइड चलाए जाते हैं, परन्तु दोनों प्रौद्योगिकों को प्रायः साथ उपयोग किया जाता है।
{{Multiple issues|
{{Expert needed|technology|reason=unfocused, scattered, unnecessary details|date=April 2012}}
{{More citations needed|date=October 2008}}
}}


[[File:Server-side websites programming languages.PNG|thumb|सर्वर साइड स्क्रिप्टिंग में प्रयुक्त भाषाएँ।]]सर्वर-साइड [[भाषा का अंकन]] डेवलपमेंट में उपयोग की जाने वाली एक तकनीक है जिसमें [[वेब विकास]] पर स्क्रिप्टिंग भाषाओं को नियोजित करना शामिल है जो वेबसाइट के लिए प्रत्येक उपयोगकर्ता (क्लाइंट) के अनुरोध के लिए अनुकूलित प्रतिक्रिया उत्पन्न करता है। वैकल्पिक वेब सर्वर के लिए एक [[स्थिर वेब पेज]] देने के लिए है। लिपियों को किसी भी उपलब्ध सर्वर-साइड स्क्रिप्टिंग भाषा में लिखा जा सकता है (नीचे देखें)। सर्वर-साइड स्क्रिप्टिंग को [[क्लाइंट-साइड स्क्रिप्टिंग]] से अलग किया जाता है, जहां एम्बेडेड स्क्रिप्ट, जैसे कि [[जावास्क्रिप्ट]], [[वेब ब्राउज़र]] में क्लाइंट-साइड चलाए जाते हैं, लेकिन दोनों तकनीकों को अक्सर एक साथ उपयोग किया जाता है।
सर्वर-साइड स्क्रिप्टिंग का उपयोग प्रायः उपयोगकर्ता के लिए अनुकूलित इंटरफ़ेस प्रदान करने के लिए किया जाता है। ये स्क्रिप्ट उन विशेषताओं, उपयोगकर्ता की आवश्यकताओं, पहुंच अधिकारों आदि के आधार पर प्रतिक्रिया को अनुकूलित करने में उपयोग के लिए क्लाइंट विशेषताओं को इकट्ठा कर सकती हैं। सर्वर-साइड स्क्रिप्टिंग वेबसाइट के अधिपति इंटरफ़ेस को स्रोत कोड को छिपाने में भी सक्षम बनाती है, जबकि क्लाइंट के साथ साइड स्क्रिप्टिंग, उपयोगकर्ता के पास क्लाइंट द्वारा प्राप्त सभी कोड तक पहुंच होती है। सर्वर-साइड स्क्रिप्टिंग के उपयोग का नकारात्मक पक्ष यह है कि क्लाइंट को वेब ब्राउज़र के माध्यम से उपयोगकर्ता को नई जानकारी प्रदर्शित करने के लिए नेटवर्क पर सर्वर से अनुरोध करने की आवश्यकता होती है। ये अनुरोध उपयोगकर्ता के अनुभव को कम कर सकते हैं, सर्वर पर अधिक भार डाल सकते हैं, एवं उपयोगकर्ता के सर्वर से पृथक होने पर एप्लिकेशन के उपयोग को रोक सकते हैं।


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


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


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


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


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


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


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


== भाषाएँ ==
== भाषाएँ ==
<!-- Please don't list languages like Python, Perl, and Ruby here, see [[Talk:Server-side_scripting#Too_many_languages]] -->
 
कई सर्वर-साइड स्क्रिप्टिंग भाषाएँ उपलब्ध हैं, जिनमें शामिल हैं:
कई सर्वर-साइड स्क्रिप्टिंग भाषाएँ उपलब्ध हैं, जिनमें सम्मिलित हैं:
* एक्टिव वीएफपी (* .एवीएफपी)
* एक्टिव वीएफपी (*.avfp)
* सक्रिय सर्वर पृष्ठ (*.एएसपी)
* सक्रिय सर्वर पृष्ठ (*.asp)
* ASP.NET वेब प्रपत्र (*.aspx)
* ASP.NET वेब प्रपत्र (*.aspx)
* ASP.NET वेब पेज (*.cshtml, *.vbhtml)
* ASP.NET वेब पृष्ठ (*.cshtml, *.vbhtml)
* [[कोल्डफ्यूजन मार्कअप लैंग्वेज]] (*.cfm)
* [[कोल्डफ्यूजन मार्कअप लैंग्वेज]] (*.cfm)
* [[ जाओ (प्रोग्रामिंग भाषा) ]] (* .गो)
* [[ जाओ (प्रोग्रामिंग भाषा) ]] (*.go)
* Google Apps स्क्रिप्ट (* .gs)
* गुगल ऐप्स स्क्रिप्ट (* .gs)
* [[हैक (प्रोग्रामिंग भाषा)]] (* .php)
* [[हैक (प्रोग्रामिंग भाषा)]] (* .php)
* [[हास्केल (प्रोग्रामिंग भाषा)]] (*.hs) (उदाहरण: [[यसोड (वेब ​​फ्रेमवर्क)]])
* [[हास्केल (प्रोग्रामिंग भाषा)]] (*.hs) (उदाहरण: [[यसोड (वेब ​​फ्रेमवर्क)]])
* [[जावा (प्रोग्रामिंग भाषा)]] (*.jsp, *.do) JavaServer पेजेस के माध्यम से
* [[जावा (प्रोग्रामिंग भाषा)]] (*.jsp, *.do) जावा सर्वर पृष्ठों के माध्यम से
* जावास्क्रिप्ट [[सर्वर-साइड जावास्क्रिप्ट]] (*.ssjs, *.js) का उपयोग कर रहा है (उदाहरण: Node.js)
* [[सर्वर-साइड जावास्क्रिप्ट]] (*.ssjs, *.js) का उपयोग कर जावास्क्रिप्ट (उदाहरण: Node.js)
* कमंद (प्रोग्रामिंग भाषा) (*.lasso)
* कमंद (प्रोग्रामिंग भाषा) (*.lasso)
* [[लुआ (प्रोग्रामिंग भाषा)]] (*.lp *.op *.lua)
* [[लुआ (प्रोग्रामिंग भाषा)]] (*.lp *.op *.lua)
Line 50: Line 43:
* CGI.pm मॉड्यूल के माध्यम से पर्ल (*.cgi, *.ipl, *.pl)
* CGI.pm मॉड्यूल के माध्यम से पर्ल (*.cgi, *.ipl, *.pl)
* पीएचपी (*.php, *.php3, *.php4, *.phtml)
* पीएचपी (*.php, *.php3, *.php4, *.phtml)
* पायथन (प्रोग्रामिंग लैंग्वेज) (*.py) (उदाहरण: पिरामिड (वेब ​​फ्रेमवर्क)#पिरामिड, [[फ्लास्क (वेब ​​फ्रेमवर्क)]], Django (वेब ​​फ्रेमवर्क))
* पायथन (प्रोग्रामिंग लैंग्वेज) (*.py) (उदाहरण: पिरामिड (वेब ​​फ्रेमवर्क), [[फ्लास्क (वेब ​​फ्रेमवर्क)]], जैंगो (वेब ​​फ्रेमवर्क))
* [[आर (प्रोग्रामिंग भाषा)]] (*.rhtml)
* [[आर (प्रोग्रामिंग भाषा)]] (*.rphtml)
* रूबी (प्रोग्रामिंग भाषा) (*.rb, *.rbw) (उदाहरण: [[रूबी ऑन रेल्स]])
* रूबी (प्रोग्रामिंग भाषा) (*.rb, *.rbw) (उदाहरण: [[रूबी ऑन रेल्स]])
* [[टीसीएल (प्रोग्रामिंग भाषा)]] (* .टीसीएल)
* [[टीसीएल (प्रोग्रामिंग भाषा)]] (*.tcl)
* वेबडीएनए (*.डीएनए,*.टीपीएल)
* वेबडीएनए (*.dna,*.tpl)
* [[ओपनएज एडवांस्ड बिजनेस लैंग्वेज]] (*.r,*.w)
* [[ओपनएज एडवांस्ड बिजनेस लैंग्वेज]] (*.r,*.w)


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


Line 78: Line 71:
* {{curlie|Computers/Programming/Internet/Server_Side_Scripting}};
* {{curlie|Computers/Programming/Internet/Server_Side_Scripting}};


{{Web interfaces}}
[[Category:Articles with Curlie links|Server-Side Scripting]]
 
[[Category:Articles with hatnote templates targeting a nonexistent page|Server-Side Scripting]]
{{DEFAULTSORT:Server-Side Scripting}}[[Category: पटकथा भाषाएँ]]  
[[Category:Collapse templates|Server-Side Scripting]]
 
[[Category:Created On 14/06/2023|Server-Side Scripting]]
 
[[Category:Lua-based templates|Server-Side Scripting]]
 
[[Category:Machine Translated Page|Server-Side Scripting]]
[[Category: Machine Translated Page]]
[[Category:Navigational boxes| ]]
[[Category:Created On 14/06/2023]]
[[Category:Navigational boxes without horizontal lists|Server-Side Scripting]]
[[Category:Pages with script errors|Server-Side Scripting]]
[[Category:Short description with empty Wikidata description|Server-Side Scripting]]
[[Category:Sidebars with styles needing conversion|Server-Side Scripting]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready|Server-Side Scripting]]
[[Category:Templates generating microformats|Server-Side Scripting]]
[[Category:Templates that add a tracking category|Server-Side Scripting]]
[[Category:Templates that are not mobile friendly|Server-Side Scripting]]
[[Category:Templates that generate short descriptions|Server-Side Scripting]]
[[Category:Templates using TemplateData|Server-Side Scripting]]
[[Category:Wikipedia metatemplates|Server-Side Scripting]]
[[Category:पटकथा भाषाएँ|Server-Side Scripting]]

Latest revision as of 11:23, 1 November 2023

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

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

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

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

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

इतिहास

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

स्पष्टीकरण

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

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

सर्वर-साइड स्क्रिप्ट को क्लाइंट के अतिरिक्त सर्वर द्वारा पूर्ण रूप से प्रोसेस किया जाता है। जब क्लाइंट सर्वर-साइड स्क्रिप्ट वाले पृष्ठ का अनुरोध करता है, तो एप्लिकेशन सर्वर स्क्रिप्ट को प्रोसेस करता है एवं क्लाइंट को एचटीएमएल पृष्ठ प्रदान करता है।

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

वेब के प्रारम्भ में, सामग्री विशुद्ध रूप से बैक एंड पर उत्पन्न हुई थी। फ्रंट एंड पृष्ठ का आवेदन को बड़े स्तर पर स्वीकार करने के पश्चात, क्लाइंट एप्लिकेशन का उपयोग करके एचटीएमएल उत्पन्न करने के लिए बैक एंड पर नया दृष्टिकोण प्रस्तुत किया गया था। सर्वर-साइड रेंडरिंग का उपयोग करने वाले फ्रेमवर्क के उदाहरण 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.


बाहरी संबंध