前半でHTTPによるWebサーバの動作を理解するための基本的な事前知識を整理して理解します。そして、後半にそれらの知識を元にC++による簡易なHTTPサーバをフルスクラッチで実装して理解します。 今回はリクエストされたテキスト形式のHTMLを返すだけのサーバを実装します。 ブラウザからhttp://127.0.0.1:5000とアクセスすると用意されたテキストのHTMLファイルをパースしてHello, world!とだけ出力する以下のような画面が表示されるサーバとなります。 HTTPにはこれまで以下のようなバージョンが存在しています。 HTTP 0.9 HTTP 1.0 HTTP 1.1 HTTP 2 最近ではHTTP2の普及が進んていっていますが、現在はHTTP 1.1が広く使われています。 仕組み Webでは、クライアント/サーバのアーキテクチャを取っており、クライアントがリクエストを
![Webサーバの動作を理解するための事前知識とC++によるフルスクラッチで実装して理解を深めよう - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/a8327e6cb6905373de1a97621c002c65a826e999/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9V2ViJUUzJTgyJUI1JUUzJTgzJUJDJUUzJTgzJTkwJUUzJTgxJUFFJUU1JThCJTk1JUU0JUJEJTlDJUUzJTgyJTkyJUU3JTkwJTg2JUU4JUE3JUEzJUUzJTgxJTk5JUUzJTgyJThCJUUzJTgxJTlGJUUzJTgyJTgxJUUzJTgxJUFFJUU0JUJBJThCJUU1JTg5JThEJUU3JTlGJUE1JUU4JUFEJTk4JUUzJTgxJUE4QyUyQiUyQiVFMyU4MSVBQiVFMyU4MiU4OCVFMyU4MiU4QiVFMyU4MyU5NSVFMyU4MyVBQiVFMyU4MiVCOSVFMyU4MiVBRiVFMyU4MyVBOSVFMyU4MyU4MyVFMyU4MyU4MSVFMyU4MSVBNyVFNSVBRSU5RiVFOCVBMyU4NSVFMyU4MSU5NyVFMyU4MSVBNiVFNyU5MCU4NiVFOCVBNyVBMyVFMyU4MiU5MiVFNiVCNyVCMSVFMyU4MiU4MSVFMyU4MiU4OCVFMyU4MSU4NiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9ZDZiM2ZhMjVhMzc5MjAzMzY5ZTk1N2Q3YWJiNjJmZmI%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBoYXlhc2hpZXImdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTBiOTRiMzM5N2Y2NmI3ODBjNGFlYTZmZTA3Y2Y3N2Vm%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3D5b6a4a140596f0c324128a13a59def1e)