უკან დაბრუნება
C და CGI 2026 წელს კომერციულ ვებპროდუქტს ამოძრავებს
SiTech AI Team2 წთ. საკითხავი

C და CGI 2026 წელს კომერციულ ვებპროდუქტს ამოძრავებს

კორი პროფიტმა გამოუშვა marketyour.games, კომერციული ვებპროდუქტი ანგარიშებით, ძიებით, საქაღალდეებით, Stripe-ის გადახდებითა და Postmark-ის იმეილებით, C-ისა და CGI-ის გამოყენებით OpenBSD-ზე. ერთი ბინარი ემსახურება ყველა მოთხოვნას.

კომერციული აპი CGI-ზე 2026 წელს

კორი პროფიტი ამბობს, რომ marketyour.games გამოუშვა როგორც კომერციული ვებპროდუქტი, დაწერილი C-ით და CGI-ის მეშვეობით მომუშავე. პროდუქტში შედის მომხმარებლის ანგარიშები, საძიებო დაფა კონტენტის შემქმნელებისთვის, საქაღალდეები კონტენტის მოწესრიგებისთვის, გადახდები Stripe-ის მეშვეობით და ტრანზაქციული ელფოსტა Postmark-ის მეშვეობით. ის მიჰყვება პროგრესულ გაძლიერებას და არ საჭიროებს JavaScript-ს.

სტეკი BCHS-ია: OpenBSD, C, httpd და SQLite. არც ფრეიმვორკია, არც შაბლონიზაციის ენა, არც ცალკე მონაცემთა ბაზის სერვერი და არც კონტეინერი. C-პროგრამა კითხულობს CGI-ის გარემოს ცვლადებს და პასუხობს, C-ის კოდი HTML-ს პირდაპირ გამოსცემს, ხოლო SQLite-ის C API მონაცემთა ბაზის ფაილს ხსნის. განთავსება არის სტატიკურად დაკომპილირებული ბინარი, რომელსაც უბრალოდ საქაღალდეში ჩააგდებ.

ერთი ბინარი და სამი ბიბლიოთეკა

ყოველი მოთხოვნა ახალ პროცესს ქმნის, ამიტომ ახალი ვერსიის განთავსება ერთი ფაილის შეცვლას ნიშნავს. პროფიტის თქმით, სერვერის გადატვირთვა არ ხდება და შეფერხებაც არ არის, ახალი მოთხოვნები კი უბრალოდ ახალ ბინარს იყენებენ. OpenBSD აძლევს ნაგულისხმევ პარამეტრებსა და ინსტრუმენტებს, როგორიცაა pledge და unveil, C-პროგრამის დასაცავად, ხოლო httpd ნაგულისხმევად chroot-იდან ემსახურება, ასე რომ CGI-ის ბინარი სენდბოქსშია მოქცეული.

დამატებითი ბიბლიოთეკებია: libcurl, Stripe-სა და Postmark-ისკენ გამავალი მოთხოვნებისთვის; libsodium, შემთხვევითი იდენტიფიკატორების გენერაციისთვის, პაროლების ჰეშირებისა და Stripe-ის webhook-ის HMAC-ის შემოწმებისთვის; და libcjson, JSON-ის დამუშავებისთვის. მხოლოდ libcurl და libsodium არის აგების დამოკიდებულებები. libcjson ერთი C ფაილია გარე დამოკიდებულებების გარეშე, ხოლო SQLite გამოიყენება მისი ოფიციალური amalgamation-ის მეშვეობით. ორივე პროექტშია ჩაშენებული და პროექტთან ერთად კომპილირდება.

პროფიტი httpd-ის მთელ ტრაფიკს CGI-ის ბინარზე გადაამისამართებს და აქტივებს თავად შესრულებად ფაილში კომპილირებს, რათა ისინი მეხსიერებიდან მიეწოდონ. მისი თქმით, სუფთა აგებას რამდენიმე წამი სჭირდება, ხოლო ხელახლა აგებას ნახევარ წამზე ნაკლები. მისი მომარაგების ჯაჭვი C-ის კომპილატორი და სამი ბიბლიოთეკაა, მთავარი რედაქტორი კი Vim-ია პლაგინების გარეშე.

რა შეიცვლებოდა

CGI ძალიან ცოტას გაძლევს მზა სახით, ამიტომ ჯერ კიდევ უნდა დაწერო ქუქიების დამუშავებისა და შექმნის, query პარამეტრების დამუშავებისა და ვალიდაციის, ფორმის მონაცემების დამუშავებისა და ვალიდაციის და შეყვანის ესკეიპინგის უტილიტები. პროფიტმა საკუთარი ვარიანტი ერთ ჰედერ ფაილში, cgi.h-ში, დაწერა, მაგრამ არ არის დარწმუნებული, რომ ეს სწორი გადაწყვეტა იყო. ის აღნიშნავს, რომ kcgi-ს მსგავსი ბიბლიოთეკები არსებობს, თუმცა მათი გამოყენება მათი API-ისა და უსაფრთხოების მოდელის მიღებას ნიშნავს, და მას საერთო უტილიტები stb-ის ბიბლიოთეკების სტილში უნდოდა.

მისი დასკვნაა, რომ CGI ძველია, მაგრამ არა მივიწყებული. პროცესების fork-ი ნაკლებად ძვირია, ვიდრე ოდესღაც, ხოლო FastCGI შესაძლო განახლებაა, თუ fork-ი ოდესმე პრობლემად იქცევა. პროდუქტი მუშაობს ერთ ბინარზე, 2004 წელს სტანდარტიზებული მომსახურების მოდელით, და მასში იმაზე ნაკლები მოძრავი ნაწილია, ვიდრე მან აქამდე გამოუშვა ნებისმიერი რამ.

წყაროები: prophitt.me

SSiTech

SiTech — AI-გაძლიერებული ვებ დეველოპმენტი

ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.