2009-03-03 40 views
6

Tôi vừa mới đọc trang http://www.meebo.com/ Giới thiệu về chúng tôi và đọc dòng này: "cộng với, chúng tôi là một trong số ít người vẫn sử dụng C!"Mã hóa một trang web trong C?

Xem xét meebo là một ứng dụng trò chuyện trực tuyến, chúng hoạt động như thế nào với C? Làm thế nào họ có thể sử dụng C cho backend? Làm thế nào nó tương tác với lối vào? Ví dụ: giả sử người dùng tạo tài khoản mới và thư mục mới sẽ được tạo, thông tin sẽ đi từ đầu trước đến đầu sau?

Tôi xin lỗi nếu đó là câu hỏi không hợp lệ.

Cảm ơn bạn

Chỉnh sửa 1: Hướng dẫn giới thiệu về CGI thật tuyệt vời. Bất kỳ cuốn sách hay nào tôi có thể lấy từ thư viện của tôi liên quan đến điều này?

Cảm ơn rất nhiều vì những người phản hồi nhanh!

Trả lời

9

Tôi không biết làm thế nào meebo hiện nó, nhưng cho rằng đó là phần mềm chat họ có thể có một máy chủ tùy chỉnh bằng văn bản trong C để xử lý lưu lượng tin nhắn thực tế.

Tuy nhiên, Apache và hầu hết các máy chủ HTTP khác luôn có thể gọi các chương trình C giống như chúng có thể gọi PHP, CGI và các ngôn ngữ khác cho các yêu cầu nhất định. Một số trang web thậm chí được viết bằng Lisp.

Phần cuối phải được biên dịch mỗi lần, không giống như ngôn ngữ diễn giải, nhưng điều đó xảy ra khi triển khai và là một phần của tập lệnh xây dựng/sản xuất. Các điều khoản được cung cấp và tài khoản người dùng mà chương trình C chạy dưới phải được lựa chọn cẩn thận, và tất nhiên trang web C bị các vấn đề tương tự mà bất kỳ chương trình C nào khác có thể rơi, chẳng hạn như tràn bộ đệm, segfault, stackoverflow, v.v. Miễn là bạn chạy nó với quyền hạn giảm, bạn được bảo vệ tốt hơn, và nó không tệ hơn bất kỳ ngôn ngữ/nền tảng/kiến ​​trúc nào khác.

Đối với máy chủ, tuy nhiên, nó vẫn được sử dụng rộng rãi - tiêu chuẩn vàng, tôi cho là vậy. Bạn có thể tìm thấy rất nhiều máy chủ được viết bằng Java, C++ và mọi ngôn ngữ khác, nhưng C có vẻ như chỉ hoạt động.

-Adam

2

Rất nhiều chương trình server-side có thể được thực hiện trong C, chưa kể đến CGI programming. Chúng cũng có thể là Using C with MySQL, rất có thể. Nhưng không có quyền truy cập vào mã nguồn của họ, chúng tôi không có cách nào biết được họ đang sử dụng bao nhiêu C.

Tuyên bố rằng họ là "một trong số ít người xung quanh vẫn đang sử dụng C" có lẽ chỉ là một trò đùa. Với số liệu thống kê như this ít nhất tôi sẽ hy vọng như vậy.

-John

1

Bạn có thể thấy một ví dụ điển hình của một trang web trong C với mã nguồn: fossil.

Nó sử dụng SQLite cho mặt sau.

3

Meebo sử dụng mô-đun Lighttpd tùy chỉnh được gọi là mod_meebo. Nó không hoàn toàn trả lời câu hỏi của bạn, nhưng tôi nghĩ bạn có thể quan tâm.

3

Tôi đã cuộn các máy chủ HTTP 1.1 không chặn trong ít nhất 50 dòng mã (thưa thớt) hoặc vài trăm (tốt hơn), tối đa khoảng 5k (an toàn). Các máy chủ sẽ tải các đối tượng được chia sẻ động dưới dạng các mô-đun để xử lý các loại yêu cầu cụ thể.

Mã gốc sẽ xử lý theo dõi kết nối, giữ nguyên, yêu cầu GET/POST/HEAD và cung cấp chúng cho trình xử lý được tải khi khởi động. Tôi đã làm điều này khi tôi đang làm việc với rất ít khuỷu tay khuỷu tay trên các thiết bị nhúng mà phải có một số loại bảng điều khiển dựa trên web .. đặc biệt là một thiết bị kiểm soát các cửa hàng điện.

Điểm vào cho mỗi DSO được xác định bởi URL và phương thức được sử dụng (tức là/foo hoạt động khác nhau tùy thuộc vào loại yêu cầu mà nó đang phân phối).

Máy chủ nhỏ của tôi hoạt động khá tốt, có thể xử lý khoảng 150 khách hàng không có nhánh hoặc chủ đề và thậm chí có hệ thống mẫu nhỏ đẹp mắt để người dùng có thể sửa đổi trang mà không cần giữ tay.

Tôi chắc chắn nhất không sử dụng loại thiết lập này trên bất kỳ trang web sản xuất nào, ngay cả trang chủ chào hàng cơ bản trên thế giới của bạn với sách khách. Bây giờ, nếu tất cả những gì tôi phải làm là lắng nghe trên cổng 80/443, chấp nhận yêu cầu với một tải trọng POST nhỏ, vệ sinh chúng và chuyển tiếp chúng đến các khách hàng khác ... một chút khác biệt. Nhưng đó là một nhiệm vụ cụ thể máy chủ giả vờ là máy chủ web, không sử dụng C để tạo các trang động.

Các vấn đề liên quan