2026年1月23日金曜日

httpサバ

Qiitaにログインして、便利な機Mon

はじめに

業務で久しぶりにC言語を使うことになったため、復習がてらMongooseというライブラリを使用して簡易なHTTPサーバーを作成しました。
簡単な内容にはなりますが備忘録として残しておきます。

環境

Windows11
Microsoft Visual Studio 2022

事前準備

Mongooseをプロジェクトに追加します。
以下からmongoose.hmongoose.cをダウンロードして適宜インクルードすればOKです。

実装

Mongooseのドキュメントに記載されているサンプルコードをベースに、適宜関数への分割やエラー処理の追加を行い、HTMLを返す新たなAPI/api/html/indexを実装しました。
今回はGETリクエストのみで、他は全てエラーとなります。

main・リクエスト受信部分

各ソースコードに対応するヘッダファイルは記述が少ないので省略しています。

main・Handler

/api/html/index

サーバーを起動し、ブラウザでURLにアクセスするとシンプルなHTMLのページが表示されます。
GETのみ実装のため、POST等のリクエストを受信した場合は405エラーを返します。

/api/html/index

/api/helloに関しては、/api/html/indexと同じような構成で、元のサンプルコードの処理を残したまま405エラーを追加したのみのため省略します。

実行

http://localhost:8000/api/html/indexにブラウザでアクセスすると以下のようなページが表示されます。

Index

Current timeの部分は一秒ごとに更新されていきます。

最後に

Cはエンジニアになりたての時に二ヶ月程度学んだだけで、その後はもっぱらC++を使用していたためかなり書き方を忘れていて妙なミスが多発しました。mallocが得意でないのでvectorなどの動的配列を簡単に作れるクラスが恋しいです。

今回は静的なファイルを返すAPIを作ったので、DBから取得した値を返すなどの動的な値を返すAPIも作成してみたいです

0 件のコメント:

コメントを投稿