HeadlinesBriefing HeadlinesBriefing.com

CGI से C में आधुनिक वेब ऐप कैसे बनाएं

Hacker News •
×

1994 में, एक गतिशील वेबसाइट का मतलब था एक C प्रोग्राम लिखना, उसे cgi-bin डायरेक्टरी में रखना, और Apache को हर अनुरोध पर उसे fork करने देना। बत्तीस साल बाद, लेखक ने मूल रूप से उसी तकनीक का उपयोग करके एक वाणिज्यिक वेब उत्पाद, marketyour.games, जारी किया। इस उत्पाद में उपयोगकर्ता खाते, कंटेंट क्रिएटर्स के लिए एक खोज डैशबोर्ड, उन्हें व्यवस्थित करने के लिए फ़ोल्डर, Stripe के माध्यम से भुगतान, और Postmark के जरिए ट्रांजेक्शनल ईमेल शामिल हैं। यह प्रोग्रेसिव एन्हांसमेंट का पालन करता है और इसके लिए JavaScript की आवश्यकता नहीं है।

स्टैक BCHS है: OpenBSD, C, httpd और SQLite। इसमें कोई फ्रेमवर्क, कोई टेम्पलेटिंग भाषा, और कोई अलग डेटाबेस सर्वर नहीं है। C प्रोग्राम CGI एनवायरनमेंट वेरिएबल पढ़ता है और सीधे HTML आउटपुट करता है। बाइनरी स्टेटिकली लिंक्ड है और एक ही फ़ाइल को बदलकर तैनात की जाती है, इसलिए नए अनुरोध सर्वर को रीस्टार्ट किए बिना या डाउनटाइम के बिना नया संस्करण अपने आप उठा लेते हैं। OpenBSD के pledge और unveil प्रोग्राम को सुरक्षित रखने में मदद करते हैं, और httpd एक chroot से सेवा देता है। निर्भरताएं सीमित हैं: आउटबाउंड अनुरोधों के लिए libcurl, पहचानकर्ताओं, पासवर्ड हैशिंग और Stripe webhook सत्यापन के लिए libsodium, और JSON पार्सिंग के लिए libcjson। एक साफ़ बिल्ड में कुछ सेकंड लगते हैं।

लेखक फ्रेमवर्क के बजाय CGI के मूल सिद्धांतों को महत्व देते हैं। 2004 में प्रकाशित 1.1 विनिर्देश में कोई बदलाव नहीं हुआ है, और CGI को समझने के लिए HTTP को समझना पर्याप्त है। यह भाषा और प्लेटफ़ॉर्म से स्वतंत्र है, और यह कार्यों के स्पष्ट विभाजन को बनाए रखता है, जिसमें एक ही वेब सर्वर सीधे बिज़नेस लॉजिक को कॉल करता है, न कि किसी अलग एप्लिकेशन सर्वर पर रिवर्स-प्रॉक्सी करता है। एप्लिकेशन साधारण प्रोग्राम हैं जिन्हें शेल से चलाया जा सकता है और gdb से डीबग किया जा सकता है।

यह दृष्टिकोण सप्लाई चेन जोखिम को भी न्यूनतम रखता है, जो हाल के पैकेज रिपॉजिटरी हमलों को देखते हुए एक महत्वपूर्ण लाभ है। बहुत कम निर्भरताएं होने से समझौता किए गए पैकेजों का खतरा कम होता है। लेखक का तर्क है कि 2004 में CGI का पतन उचित था, लेकिन 2026 में यह तर्क टिकता नहीं, और एक आधुनिक वेब एप्लिकेशन वास्तव में C में लिखा जा सकता है।

स्रोत: Hacker News · HeadlinesBriefing द्वारा सारांशित