タイトルのとおり、HTTPサーバーを作成したいと思います。私の質問はこれです、どうすればいいですか?これは非常に一般的で「高レベル」すぎるように聞こえますが、私の狂気には方法があります。この質問への答えは、言語にとらわれないはずです。意味は、私が使用する言語(C、C++、Javaなど)に関係なく、同じ答えになるはずです。これがどのように機能するかについての一般的な考えがあります:
私が言ったように、私はこれがプロセスであると信じています、しかし私は100%確信がありません。これは私の質問の核心につながります。人はどのようにまたはどこでこの情報を見つけますか?
HTTPサーバーだけを作成したくない場合、FTPサーバー、チャットサーバー、画像ビューアーなどを作成したい場合はどうなりますか?人はどのようにして、機能するHTTPサーバーを作成するために必要な正確なステップ/プロセスを見つけますか?
同僚がhtmlヘッダーについて教えてくれたので、彼なしではこれを知ることはなかったでしょう。また、各リクエストを新しいスレッドに渡すことについても述べました。物事の仕組みについての大きな本はありますか? HTTPサーバーになるために必要なもののマニュアルはありますか?
「HTTPサーバーはどのように機能するか」をグーグルで試しましたが、私が見つけた唯一の回答はあなたの平均的なジョーに向けられていて、HTTPサーバーをプログラムしたい人には向けられていませんでした。
HTTP/1.1 で RFC 2616 を読んで、それを実行します。
それは実際には工学部3年生のプロジェクトであり、それはまさにプロジェクトの説明です。
あなたのツールは:
追加の楽しみのために考慮すべき事柄:
楽しんで。見ていてとてもクールです。
それらは最初に取り組む方がはるかに簡単で、RFCはダイジェストがはるかに簡単です(まあ、IRC 1つはいくつかの奇妙な部分がありますが、FTPはかなり明確です)。
もちろん、一部の実装の詳細は、実装に使用する言語とスタックに大きく依存します。私はすべてCでアプローチしましたが、他の言語でも同じように楽しくなると確信しています(まあ、それほど楽しくはないかもしれませんが、それでも楽しいでしょう)。
インターネットで使用される各プロトコルは、RFCと呼ばれる1つ以上の公開ドキュメントで指定されています。現在のすべてのRFCは http://www.rfc-editor.org/ にあります。これにはまともな検索機能もあります。
たとえば、HTTPプロトコル(バージョン1.1)は RFC2616 で指定され、FTPプロトコルは RFC959 で指定されます。
仕様が進むにつれ、私の意見では、RFCは非常に読みやすくなっています。