マイコン上のWebServerで404Errorの扱いに関する考察

最終更新日 2022年9月5日

最近の1chipマイコンは安価なモデルでも外部にNICを用意すればWebserverを用意に構築出来ます。AVRだと8bitモデルという事も有りちょっと実行メモリが足りないのですが、STM32なら十分構築出来ますし、ESP32ならWebserverの仕組みがはじめから用意されています。最近ではRPiPicoのモジュールにNICが搭載された1ボードマイコンも提供されています。

ネットワークに接続出来るマイコンならWebServerを構築したいというのは一般的かと思います。自分もパラメータ変更の為のユーザインターフェースとしてブラウザを使うことはとても意味があると思っています。それ以前はテレネットのような準汎用ソフトを使っていたと思いますが、やはりブラウザで実現出来るのはとても意味があると思っています。

実際に構築してみて思うことがあります。デバイスのRootにアクセスしたら、そこから先は基本的に直接URLを操作することなく、リンクをボタンクリックで操作してゆくのが一般だと思っています。しかし、直接URLを入力されることはあり得ます。

マイコンの場合、ファイルシステムを使用してファイルを読み込んで表示するようなことは少ないです。都度HTMLを構築して返信するのが一般かと思います。ESP32のようにファイルシステムを予め想定してそれなりのストレージ領域を確保出来ればいいのですが、なかなか難しいと云う印象を持っています。

で、本題です。ROOT以下URLに無効なURLが指定された場合、返信コードとして404を返すのか、それとも404+404ErrorPageを返すか、はたまた、エラーを指すこと無く、200 index.html相当を返すのかかと思います。自分が思うに404を返すより、マイコンに限ってはTOPページを返す方がリーズナブルなのでは無いかと思っています。もちろん404Errorだという情報は欲しいですが。

どんなコードを書けばいいのか検討して見ました。


戯言(nonsense)に戻る


問い合わせ頁の表示


免責事項

本ソフトウエアは、あなたに対して何も保証しません。本ソフトウエアの関係者(他の利用者も含む)は、あなたに対して一切責任を負いません。
あなたが、本ソフトウエアを利用(コンパイル後の再利用など全てを含む)する場合は、自己責任で行う必要があります。

本ソフトウエアの著作権はToolsBoxに帰属します。
本ソフトウエアをご利用の結果生じた損害について、ToolsBoxは一切責任を負いません。
ToolsBoxはコンテンツとして提供する全ての文章、画像等について、内容の合法性・正確性・安全性等、において最善の注意をし、作成していますが、保証するものではありません。
ToolsBoxはリンクをしている外部サイトについては、何ら保証しません。
ToolsBoxは事前の予告無く、本ソフトウエアの開発・提供を中止する可能性があります。

商標・登録商標

Microsoft、Windows、WindowsNTは米国Microsoft Corporationの米国およびその他の国における登録商標です。
Windows Vista、Windows XPは、米国Microsoft Corporation.の商品名称です。
LabVIEW、National Instruments、NI、ni.comはNational Instrumentsの登録商標です。
I2Cは、NXP Semiconductors社の登録商標です。
その他の企業名ならびに製品名は、それぞれの会社の商標もしくは登録商標です。
すべての商標および登録商標は、それぞれの所有者に帰属します。