こんにちは。
Golangを本当に基礎からやろうと、Goで構築したwebアプリの内部で何が行われているかを学習したので備忘録としてまとめます。
【背景】
これまでいくつかwebアプリを作ってきたが、内部的にそもそも具体的に何が行われているのかという基礎の部分があいまいだったため、改めて学習しなおそうと思った。また、これからGoでAPIサーバを作ろうと考えているので、基礎をしっかり学習しておくことで、後々理解が深まったり応用が効くと思ったため。
【本題】
①クライアントからサーバへHTTPリクエストを送信する。
②リクエストは、一旦マルチプレクサと呼ばれる部分に送られる。このマルチプレクサが、リクエストの値を見て適切なハンドラにリクエストを振り分ける。
③ハンドラは、リクエストを処理する
④ハンドラにおいてDBのデータが必要な場合、DB内部のデータをモデル化したデータ構造体を使用する。このデータ構造体がDBと接続する。
⑤ハンドラでの処理完了後、ハンドラはテンプレートエンジンを起動する。
⑥テンプレートエンジンは、テンプレートを作成し、取得したデータと合わせてHTMLファイルとする。
⑦作成されたHTMLファイルはレスポンスの一部としてクライアント側に返される。
【今後の取り組み】
今回は上に書いたようなHTMLファイルをいちいちレスポンスとして返すようなアプリ開発ではなく、SPA構成でDBのデータをJSONとしてレスポンスする形で開発しようかなと思ってます。
しかし、webアプリの基礎を固めておくことは今後の成長に大きく影響すると考えているため、忘れないようにしたいです。
Golangでのアプリ開発の経緯もまた投稿します。
以上です。