そういえばなんでダブルクリックだとだめなの?
簡単なhtmlの表示確認ならダブルクリックで開いちゃってもいいですよね?
ちゃんとブラウザで表示されます
でも、ちょっと複雑な、json読ませるとか、js読ませるとか、そういうのがはいるとダブルクリックだけじゃ動かなくてローカルWebサーバを立てないといけない(http-serverとか)
なんとなく複雑なことしようとするんだからWebサーバいるんだろうなあ、くらいにしか思ってなかったけど理由は?
HTTPプロトコルが動かないから、外部ファイルが、とかぼんやり思うけど
ダブルクリックでも画像とかはとってこれてるし何が違うんだろ……と……
答え、セキュリティのため
外部のJSやjsonを読み込んだりAPIを使ったりとかは、好きにやられるとちょっと悪いことができてしまいます。HTMLファイルをダブルクリックしただけで簡単にでそういう悪いことができてしまうと嫌です。
ちなみに、HTMLダブルクリックでも画像はとってこれるのは、 <img> タグで画像をとってきても悪さはできないからです。
なのでファイルダブルクリックで開く方法だと簡単な描画確認しかできない!
もう少しちゃんと
上でいったような悪さができないように、これを防ぐ(コントロールする)仕組みとして same-origin policy みたいなものがあります。
悪意あるサーバーとのアクセスを分離(勝手に呼び出したり・呼び出されたりしないようにする)するような機能です。
この仕組みはHTTPのプロトコルで規定されていて、HTTPヘッダーで制御します。
で、HTMLをダブルクリックしてブラウザで見る、みたいなことをするときには当然HTTPサーバーは動いていませんので、当然HTTPヘッダーの制御もできませんので、ブラウザとしては当然「安全」の方にたおすので、というかそもそもHTTPプロトコル(冗長)で動いていませんので、そういうことができない(させない)。
なのでJSなどを使う処理の場合はめんどくさくてもローカルサーバをたてて確認が必要。
単なる描画確認の場合はダブルクリックとかで大丈夫。