HeadlinesBriefing HeadlinesBriefing.com

CGI দিয়ে C-তে আধুনিক ওয়েব অ্যাপ

Hacker News •
×

১৯৯৪ সালে একটি ডায়নামিক ওয়েবসাইট মানে ছিল একটি 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-এর মৌলিক বিষয়গুলোকে মূল্য দেন। ২০০৪ সালে প্রকাশিত ১.১ স্পেসিফিকেশন অপরিবর্তিত রয়েছে, এবং CGI বুঝতে HTTP বোঝাই যথেষ্ট। এটি ভাষা ও প্ল্যাটফর্ম-নিরপেক্ষ, এবং দায়িত্বের স্পষ্ট বিভাজন বজায় রাখে, যেখানে একটি ওয়েব সার্ভার আলাদা অ্যাপ্লিকেশন সার্ভারে রিভার্স-প্রক্সি না করে সরাসরি ব্যবসায়িক লজিক কল করে। অ্যাপ্লিকেশনগুলো সাধারণ প্রোগ্রাম যা শেল থেকে চালানো যায় এবং gdb দিয়ে ডিবাগ করা যায়।

এই পদ্ধতি সরবরাহ শৃঙ্খলের ঝুঁকিও ন্যূনতম রাখে, যা সাম্প্রতিক প্যাকেজ রিপোজিটরিতে আক্রমণের প্রেক্ষিতে একটি গুরুত্বপূর্ণ সুবিধা। খুব কম নির্ভরতা থাকায় আপসকৃত প্যাকেজের ঝুঁকি কম। লেখক যুক্তি দেন যে ২০০৪ সালে CGI-এর পতন যথার্থ ছিল, কিন্তু ২০২৬ সালে তা টেকে না, এবং একটি আধুনিক ওয়েব অ্যাপ্লিকেশন সত্যিই C-তে লেখা সম্ভব।

উৎস: Hacker News · সারাংশ: HeadlinesBriefing