HTTP サーバーは単純なテキストベースのサーバーです。すべてのプロトコル メッセージは平文で送信されます。さらに、それはステートレスです (つまり、以前の接続について何も覚えておく必要はありません。各リクエストを新しいものであるかのように処理します)。これらの概念を念頭に置いて、基本的にどのようsocket programming
に機能するか (および C で適切にプログラミングする方法) を理解する必要があります。ソケット プログラミングは、使用しているライブラリにも依存します (一般に、POSIX
Windows 以外のシステムで使用され、それ以外の場合WinSock2
は Windows で使用されます)。
他の機能 (HTML、js など) はブラウザーによって処理されます。サーバーは単にデータをクライアントに送信します (トランスポート プロトコルも再作成しない限り、通常は TCP 経由)。
また、間違いなくソケット プログラミング (C および C++) の最良のリファレンスはBeej's Guideです。
編集
非常に基本的なレベルでは、HTTP サーバーの疑似コードは次のようになります。
while(1) {
client = accept(); // Receive some connection
recv(client, req); // Receive the request from the client
// ... Do some HTTP request processing ...
send(client, resp); // Send the client the response/data
}
そうは言っても、私はあなたの投稿を読み直したところです。おそらく、ソケットプログラミングはCを学ぶのに最適なポイントではありません.それができないわけではありません. 、言語とネットワーク層の両方に頭を悩ませることは、はるかに困難です。ポインタ、メモリ管理、構造体などのアイデアに慣れるために作成するものは他にもたくさんあります。単純なファイル リーダー/ライターを作成して、ある種のインベントリ/計算スクリプトを作成してみることができます。ソケット API は、既に C に慣れている初めてのユーザーにとって非常に見慣れないものに見えるため、これらをお勧めします。