2009-03-03 10 views
6

मैं सिर्फ http://www.meebo.com/ पढ़ रहा था हमारे पृष्ठ के बारे में, और इस पंक्ति को पढ़ें: "प्लस, हम अभी भी सी का उपयोग करने वाले कुछ में से एक हैं!"सी में एक वेबसाइट कोडिंग?

ध्यान में रखते हुए कि मीबो एक ऑनलाइन चैट क्लाइंट है, वे सी के साथ कैसे काम करते हैं? बैकएंड के लिए वे सी का उपयोग कैसे कर सकते हैं? यह फ्रंटएंड के साथ कैसे बातचीत करता है? उदाहरण के लिए, मान लीजिए कि कोई उपयोगकर्ता एक नया खाता बनाता है, और नई निर्देशिका बनाई जानी है, जानकारी फ्रंट एंड से बैक एंड तक कैसे जाती है?

मुझे खेद है कि यह एक अमान्य प्रश्न है।

धन्यवाद

संपादित करें 1: परिचय ट्यूटोरियल सीजीआई करके अच्छा लगा। इस बारे में मेरी लाइब्रेरी से कोई भी अच्छी किताबें मैं उठा सकता हूं?

त्वरित प्रतिक्रिया लोगों के लिए बहुत बहुत धन्यवाद!

उत्तर

9

मुझे नहीं पता कि मीबो कैसे करता है, लेकिन यह देखते हुए कि यह चैट सॉफ़्टवेयर है, उनके पास संभवतः वास्तविक संदेश ट्रैफ़िक को संभालने के लिए सी में लिखा गया कस्टम सर्वर है।

हालांकि, अपाचे और अधिकांश अन्य HTTP सर्वर हमेशा सी प्रोग्राम को कॉल करने में सक्षम हैं जैसे कि वे कुछ अनुरोधों के लिए PHP, CGI और अन्य भाषाओं को कॉल कर सकते हैं। लिस्प में कुछ वेबसाइटें भी लिखी गई हैं।

बैकएंड को हर बार संकलित भाषा के विपरीत संकलित किया जाना चाहिए, लेकिन यह रोलआउट पर होता है और बिल्ड/उत्पादन स्क्रिप्ट का हिस्सा होता है।

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

सर्वरों के लिए, हालांकि, यह अभी भी व्यापक रूप से उपयोग किया जाता है - सोने का मानक, मुझे लगता है। आप जावा, सी ++, और हर दूसरी भाषा में लिखे गए बहुत सारे सर्वर पा सकते हैं, लेकिन सी बस आसपास रहना प्रतीत होता है।

-Adam

2

सर्वर साइड कार्यक्रमों का एक बहुत सी में किया जा सकता है, नहीं CGI programming उल्लेख करने के लिए। वे Using C with MySQL भी हो सकते हैं, जो बहुत संभव है। लेकिन उनके स्रोत कोड तक पहुंच के बिना, हमारे पास यह जानने का कोई तरीका नहीं है कि वे कितने सी का उपयोग कर रहे हैं।

दावा करते हुए कि वे "सी का उपयोग करने वाले कुछ लोगों में से एक" हैं, शायद यह सिर्फ एक मजाक था। this जैसे आंकड़ों के साथ कम से कम मुझे उम्मीद है।

-जॉन

1

आप स्रोत कोड के साथ सी में एक वेब साइट का एक अच्छा उदाहरण देख सकते हैं: fossil

यह बैक एंड के लिए SQLite का उपयोग करता है।

3

मीबो mod_meebo नामक कस्टम लाइटटैड मॉड्यूल का उपयोग करता है। यह आपके प्रश्न का पूरी तरह उत्तर नहीं देता है, लेकिन मैंने सोचा कि आपको रुचि हो सकती है।

3

मैंने लगभग 5k (सुरक्षित) तक कोड (स्पैस) या कुछ सौ (बेहतर) के 50 लाइनों में गैर-अवरुद्ध HTTP 1.1 सर्वरों को घुमाया है। सर्वर विशिष्ट प्रकार के अनुरोधों को संभालने के लिए गतिशील साझा वस्तुओं को मॉड्यूल के रूप में लोड करेगा।

अभिभावक कोड कनेक्शन ट्रैकिंग को संभालने, जीवित रखने, जीईटी/पोस्ट/HEAD अनुरोधों को संभालने और स्टार्ट अप पर लोड किए गए हैंडलरों को खिलाएगा। मैंने ऐसा किया जब मैं एम्बेडेड डिवाइस पर बहुत छोटे कोहनी कमरे के साथ काम कर रहा था जिसमें किसी प्रकार का वेब आधारित नियंत्रण कक्ष था .. विशेष रूप से एक उपकरण जो बिजली आउटलेट नियंत्रित करता था।

प्रत्येक डीएसओ के लिए प्रवेश बिंदु यूआरएल और विधि द्वारा परिभाषित विधि द्वारा परिभाषित किया गया था (यानी/foo अलग-अलग तरीके से व्यवहार के अनुरोध के आधार पर व्यवहार किया जाता है)।

मेरा छोटा सर्वर काफी अच्छा रहा, लगभग 150 ग्राहकों को कांटे या धागे के बिना संभाल सकता था और यहां तक ​​कि एक अच्छा छोटा टेम्पलेट सिस्टम भी था ताकि यूआई लोग बिना हाथ पकड़ने के पृष्ठों को संशोधित कर सकें।

मैं सबसे निश्चित रूप से किसी भी प्रकार की उत्पादन साइट पर इस तरह के सेटअप का उपयोग नहीं करता, यहां तक ​​कि अतिथि पुस्तक के साथ आपका मूल हैलो वर्ल्ड होम पेज भी।

अब, अगर मुझे बस इतना करना है कि पोर्ट 80/443 पर सुनें, छोटे POST पेलोड के साथ अनुरोध स्वीकार करें, उन्हें स्वच्छ करें और उन्हें अन्य ग्राहकों के साथ अग्रेषित करें ... यह थोड़ा अलग है। लेकिन यह एक कार्य विशिष्ट है सर्वर जो वेब सर्वर होने का नाटक करता है, यह गतिशील पृष्ठों को उत्पन्न करने के लिए सी का उपयोग नहीं करता है।

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