プログラミング初心者はまず簡単にHTTP通信を覚えよう
手段を目的にしがちでは?
早速Web系プログラミング寄りになってしまうのですが、 プログラミング入門をして本を読み進めたり入門記事を進めていくとHTTP通信する処理にたどり着くと思います。
HTTP通信とは、サーバーにHTTPという手続きでリクエストを送ります。
プログラミング入門者からしたらなんのこっちゃ……って思うかもしれませんが最初は気にしなくても大丈夫です。
理解しようとすると難しいので、こうした時はこうなるんだって覚えておくのがベストです。
POSTとGETの話をしたいのですが、一気に難しい内容になってしまう可能性があるので
今回は簡単にHTTP通信について軽く触れてみます。
それではプログラミング独学法第5回目を始めましょう。
GoogleやYahooで検索する時はどうなっているのか
普段何気なく使ってる検索エンジンも、検索ボタンを押すとHTTP通信が発生します。
検索ボタンを押して結果が表示された時、アドレスバーのURLをよく見てみましょう。
ずらー!っと長い文字列が並んでいるのが一目でわかると思います。
検索ボタンを押すと検索しようとしたワードや様々な情報が組み込まれ、1つのURLになります。
このURLを元に、GoogleやYahooは検索結果を返してくれます。
今回は詳しく説明しませんが、この手続きを「GET」と呼びます。
HTMLでFORMタグを使って組むときに「method="post"」 や「method="get"」ってみたことありませんか?
見たことが無いという人は、まず自力でFORMタグを使って組んでみると良いでしょう。
出来れば誰かが作ってくれたFORMタグをコピペしてきてコードを読んでみると力になります。
お問い合わせフォームで送信する時はどうなっているのか
続いて、お問い合わせをしたり買い物をしたりするときに確定ボタンや送信ボタンを押すと思います。
その時は検索と同じようにURLには何も組み込まれません。
買い物の情報やクレジットカード情報がURLに全部見えるようになってしまってはセキュリティ的によろしくありません。
この通信手続きを「POST」と呼びます。
情報を隠蔽したい通信を行う時は基本的に「POST」にしておかなければいけません。
ここまでで「GET」と「POST」という手続きが出てきました。
実は私も100%完璧にこの2つを解説してみろって言われたら出来る自信がありません。
恐らくしっかり基礎を身に付けているエンジニア以外は殆ど詳しく説明できないでしょう。
私みたいに大ざっぱに概要だけ分かってて使い方も分かっているけど一語一句詳しく説明しろって言われたら……
ってなるエンジニアは結構多いんじゃないでしょうか?
なので、完璧に覚える必要はありません。
GETするときはどうなるのか。
POSTしたときはどうなるのか。
ということを今は覚えておけば問題ありません。
自分で作るときはどうすればいいのか
結論から言うとHTTP通信はPHPでやった方が参考も多いですし理解しやすいです。
POSTとGETはどうやってプログラミングに組み込めばいいの?
言語によって作り方がちょっと変わってくるので詳しくは説明しませんが、 メジャー言語だけ簡単に説明しようと思います。
PHP+HTML
基本的に通信処理を行うWebページはPHPでしょうか。
FORMタグを使ってボタンを押された時に受け取って次のページに行くには、 PHPの力を使わないとHTMLだけでは情報を保持できません。
一番GETとPOSTの概念を学びやすい組み合わせです。
JavaScript
実はJavaScriptだけでもHTTP通信をすることが出来ます。
AjaxというJavaScriptの非同期通信の仕組みを使ってPOSTやGETをできるのですが、 初心者からするとかなり難易度の高い部類になるのでおとなしくPHPにしましょう(笑)
RubyとPython
RubyとPythonもコンソール(黒い画面)でHTTP通信をすることが出来ます。
ライブラリという便利な道具を使えば簡単にHTTP通信が出来てしまいます。
他の言語でもHTTP通信は出来ますが、簡単な部類で言えば紹介した4つの言語になります。
HTTP通信をするのは元々PHPの十八番だったのですが、最近はどの言語も進化して簡単に通信が出来るようになっています。
ですが流石にPHPは昔も今もサーバーサイドの言語なので通信処理をし続ける言語でしょう。
ゆえに検索するとわかりやすい解説も多いので、HTTP通信を学びたい場合は PHPを動く環境を作って学んだ方が理解しやすいです。
HTMLのFORMについても理解が深まるので正直PHP以外は後からでいいです。
あとがき
ちょっと簡単すぎる説明記事だったかもしれません。
しかしPOSTとGETは奥が深いので少しずつ学んで行かないと段々と嫌になってきます。
最近はリアルタイムに通信することが多くなっているので、 Web系のプログラミングをする上ではHTTP通信はまず避けられないでしょう。
完全に理解する必要は一切ありません。
わからなくなったらいつでもググってしまえばいいのです。
そうして何度もわからなくなって何度もググっていれば、 自然とそのことについて詳しくなってきます。
これはPOSTやGETに限らずなんでもそうですね。
プログラミングは検索して1発で覚えるのではなく、 何度も検索して解決法を見つけるという行為も併せて調べます。
これは私の考えなのですが、1回目で見つけた解決法をメモってそれだけしか見ない。
というのはプログラミングの成長を止めることになります。
確かに効率を求めるとそっちの方が早くていいかもしれませんが。
何度も言っていますが、プログラミングは解が1つではないので、 検索力を高めるためにも1度調べたことでも調べなおしましょう。
その時、前に見たサイトではなく違うサイトを見て違う知識を取り入れます。
これが出来ないとプログラミングの上達は難しいでしょう。
それでは。