開発史
概要
画像URLにリクエスト情報を埋め込み、サーバー側でそれをデコードして実行
レスポンスを画像に埋め込んで返却し、ブラウザで解読して情報を取得する
2021年5月はじめごろ
画像エンコーダを実装
多分この時だったはず
特に常用していた経験があったため選んだ
このプロジェクトの最初の動機は、「本来画像を提供できないGoogle Apps Scriptでも、無理矢理バイナリをテキストにして、Content-Type: text/htmlのまま画像として読み込ませることで画像送受信を実現してやろう」という悪戯心で始まっていた そのため、主なモチベーションを失ったyuki_minoh.iconは、しばらくこの話題から離れることになる
画像をテキストだと言い張って画像要素に読み込ませようとしたため、当然ながらブロックされる
テキストのデータを画像にエンコードし、それをContent-Type: text/htmlのまま画像として読み込ませるという荒技を試みていた
2021年8月末〜
画像エンコーダとサーバーを一週間ほどかけて調整し、正常な読み込みを苦しみながら実装
しかし、ソースコードのリファクタが必要だと感じたyuki_minoh.iconは、再びこのプロジェクトを保留
達成したのは実はブラウザからのリクエスト内容を、指定URLにバイパスするというだけで、元来のURLからのリクエスト情報のデコードは実装していなかった、というのもあった
実生活もめっちゃ忙しかった
サーバーサイドのリファクタリングに一定の目処が立つ
しかし、ブラウザ側のfetch関数の実装に難航
そこでコンセプトが抽象化される
before
画像URLにリクエスト情報を埋め込み、サーバー側でそれをデコードして実行
レスポンスを画像に埋め込んで返却し、ブラウザで解読して情報を取得する
after
サーバーでブラウザからのHTTPリクエストを代理実行
通信手段は可能なものから適宜選ぶ
違い
通信方法は画像に限らない
リクエスト元に応じて、可能な手段を適宜実行する
Scrapboxなら画像