おーしまブログ

プログラミングやってます

http通信とhttps通信の違い

こんにちは、おーしまです。

今回はhttp通信と、https通信の違いについてです。


というのも、フリマアプリを作成している中で、ローカルのブラウザのlocalhostでは、クレジットカード決済ができているのに、herokuにデプロイしたところ、クレジット決済ができなくなるということが起きました。

原因はこちらのコード

<!-正しい>
<script type='text/javascript' src='https://js.pay.jp/v1/'></script>
<!-誤り>
<script type='text/javascript' src='http://js.pay.jp/v1/'></script>

このコードは、クレジット決済をするために、payjp.jsというライブラリを読み込むための記述で、application.html.erbのhead要素に記述します。

本来、httpsとなるところが、httpとなっていました。

つまり、
http通信は、ローカルのブラウザで読み込むけど、ネット上では読み込まない。
https通信は、ローカルでも、ネット上でも、どっちも読み込む。
ということですね。


もっと詳しく調べてみました。

http通信:ホームページの文字や画像や動画などのデータをサーバとクライアントの間で通信するときの通信規約(プロトコル

https通信:httpと同じプロトコルの1つだが、TLS(LLS)が使われ、セキュリティがしっかりしている。httpとの違いとしては通信内容が暗号化していること。


大きな違いは、通信が暗号化されているか、暗号化されていないか、でした。
ちなみに、「プロトコル」とは、ネットワーク通信する際のルール、手順のことです。



私なりにネットで調べてみたのですが、herokuにデプロイすると、https通信しかできなくなる理由は、よくわかりませんでした。仮説ですが、ネット上で公開されるものはhttps通信でなければならないルールがある、ということだと思います。理由は、このはてなブログとか、色々のurlは、https が使われているからです笑


ごめんなさい、とりあえず、https通信を使わないといけないことは分かった。。。

お疲れ様〜

ここはどこ おれはだれ それに近いものがあんだよ 始めようとした奴らも迷い始めてる 怖がらせないでよ そりゃ甘くはないけど まだまだ 夢見ていい世界なんでしょ {UVERwould「ハイ!問題作」}