simplestarの技術ブログ

目的を書いて、思想と試行、結果と考察、そして具体的な手段を記録します。

Webサーバーがブラウザから情報を受け取るサンプル

メモ書き、あとで消します。

■前置き
Webサイトを閲覧する iPad で行われる操作ログをファイルとして保存しようにも、保存することができない仕様なので詰む
解決するにはブラウザで処理した内容をサーバーに送るしかない
どうやって?

■前提知識
HTTP というプロトコルで Webサイトを閲覧しているが、基本的に iPad などのクライアントからリクエストメッセージをWebサーバーに送り、その返答として html ファイルの内容を受け取っている
qiita.com

じゃあリクエストメッセージに、操作ログを載せればいいじゃないか

その通り

■前置き2
リクエストメッセージの種類には代表的に GET, POST の2種類があるが、操作ログなどの大量のバイナリ情報を Web サーバーに送る場合は POST を使う。
POST で任意のバイナリを送り、Webサーバーの特定のフォルダにファイルとして、または、サーバーの javascript の処理でバイト配列としてそのバイナリ情報が渡るサンプルコードを確認できればいい。

■本題
この辺かな?
POSTでリクエストを送信してテキストを受信する

第四章 サーバーにデータを送る:POSTメソッドでデータを送信する

前回準備した Webサーバーの仕組み(IIS) は POST を許可していないので、自分のローカル環境でテストできない。

POST を許可する方法はこちら
ameblo.jp

なんか他人と同じ設定で動きませんね、私は以下の設定でやっとPOST を受け入れてくれました。
f:id:simplestar_tech:20180510014836j:plain

で、POST を受け取ったサーバーが、情報をファイル出力するには?
サンプルを探します。

これかな?
qiita.com

まだ自分の言語習熟度が低くて、サーバーだけで処理するために Main を使う?
そうです、javascript じゃなくて java のサーバーコードだった。(´ー`)
ローカルのブラウザでは accept が走らないのは、index.html にこの java の Main 関数の記述がないから
サーバーマシンでは別途 java の accept を実行するプロセスを起動して、POST メッセージを待ち受け、処理します。