2009-03-03 9 views
6

私はhttp://www.meebo.com/について私たちについてのページを読んでいました。この行を読んでください: 「プラス、私たちはCを使用している数少ない人です!Cでウェブサイトをコーディングしていますか?

meeboがオンラインチャットクライアントであることを考慮すると、Cとどのように連携しますか?どのように彼らはバックエンドのためにCを使用できますか?フロントエンドとはどのように相互作用しますか?たとえば、ユーザーが新しいアカウントを作成し、新しいディレクトリを作成する場合、情報がフロントエンドからバックエンドにどのように移動するのかを考えてみましょう。

無効な質問ですと申し訳ありません。

ありがとうございました

編集1:CGIへのイントロチュートリアルは素晴らしかったです。これについて私の図書館から拾うことができる良い本はありますか?

お返事ありがとうございました!

答えて

9

meeboの仕組みはわかりませんが、チャットソフトウェアであれば、実際のメッセージトラフィックを処理するためにCで書かれたカスタムサーバーがあると考えられます。

しかし、Apacheや他のほとんどのHTTPサーバは、特定の要求に対してPHP、CGI、その他の言語を呼び出すことができるように、常にCプログラムを呼び出すことができました。いくつかのウェブサイトはLispでも書かれています。

バックエンドは、インタープリター言語と異なり、毎回コンパイルする必要がありますが、ロールアウト時に発生し、ビルド/プロダクションスクリプトの一部です。

Cプログラムが実行する権限とユーザーアカウントは注意深く選択する必要があります。もちろん、CのWebサイトでは、バッファオーバーラン、segfault、stackoverflowなどの他のCプログラムと同じ問題が発生します。権限を減らして実行する限り、より優れた保護が得られ、他の言語/プラットフォーム/アーキテクチャよりも悪くありません。

しかし、サーバーの場合、それはまだ広く使用されています。 Java、C++、および他のすべての言語で書かれたたくさんのサーバーを見つけることができますが、Cはちょっとしたことです。

-Adam

2

は、サーバー側のプログラムの多くはCGI programmingはもちろんのこと、Cで行うことができます。非常に可能なのはUsing C with MySQLでもある可能性があります。しかし、ソースコードにアクセスすることができなければ、使用しているCの量を知ることはできません。

「Cを使用しているのはまだ数少ない」と主張しているのはおそらくほんの冗談です。少なくともthisのような統計情報で私はそう望むだろう。

- ジョン

1

あなたはソースコードをC言語でウェブサイトの良い例を参照することができます:fossilを。

バックエンドにSQLiteを使用しています。

3

Meeboは、mod_meeboという名前のカスタムLighttpdモジュールを使用します。あなたの質問には完全には答えませんが、あなたが興味を持っていると思っていました。

3

ノンブロッキングHTTP 1.1サーバーは、わずか50行(疎)または数百(良好)、約5k(安全)の範囲でロールしています。サーバーは、動的共有オブジェクトをモジュールとしてロードして、特定の種類の要求を処理します。

親コードは、接続の追跡を扱うキープアライブを、/ POST/HEADリクエストをGETし、開始までにロードしたハンドラにそれらをオフに餌でしょう。私は、何らかの種類のWebベースのコントロールパネルを持っていなければならない組込み機器、特に電源コンセントを制御する機器で、少し肘のついた部屋で作業していたときにこれを行った。

各DSOへのエントリポイント(すなわち/ FOOが配信されたリクエストの種類に応じて異なる挙動を示した)を使用したURLおよび方法によって定義しました。

私の小さなサーバーは非常によく、フォークまたはスレッドなしで約150クライアントを処理しても、UIの人々が手保持を必要とせずにページを修正することができるようにちょっといいテンプレートシステムを持っていた可能性がありました。

ゲストブック付きの基本的なhello worldのホームページであっても、あらゆる種類のプロダクションサイトでこの種類の設定を使用しないでください。

私がしなければならないことは、ポート80/443でリッスンし、小さなPOSTペイロードでリクエストを受け入れ、それらをサニタイズして、他のクライアントに転送するということです...少し違っています。サーバーは、動的ページを生成するためにCを使用しないWebサーバーとふりをします。

関連する問題