「プロになるためのWeb技術入門」を読んで 〜HTTP〜
先ほどコンサル会社の2dayインターンシップを終えました。
ナメてかかったわけではないですが、予想以上に頭使いました。
ぼくのザコ脳内メモリでは荷が重すぎたみたいですww
んじゃあ、早速「HTTP」について。
HTTPとは通信プロトコルの一つで、「情報の伝達方法」と「情報の意味付け」を規定するものでしたね。
では、どうやって情報を届けるのか。
「IPアドレス」
を使うんやと。
192.168.0.1 ←これ
人間世界と同じ、住所ってことですな。
このIPアドレスがわかると宛先のホストが特定できて、そいつに情報届けることができるらしい。
その役割は
「TCP/IP」
っていうプロトコルがやってくれるんやと。
情報をパケットという小さな単位に分割して送受信している。
郵便屋さんみたいなやつやね。
ん、待てよ。
URLも住所だよな。
URLとIPアドレス、どっち使えばええねん!
「DNS」
Domain Name System
ほうほう、こいつが打ち込んだURLをIPアドレスに変換しているらしい。
クライアント:「www.dirty.jpのIPアドレス教えてくれや」
DNSサーバ:「187.149.198.45や。覚えときや。」
こんな風に問い合わせることもできるらしい。
しかし、ここで終わらないのがインターネットの奥深さ。
「ポート」
郵便屋さんのTCP/IPは受信した情報がどのようなプロトコルか、どのアプリケーションが処理すべきわからないんだって。(なんだよ、ただ届けるだけかよw)
そこでこの「ポート」、港を使って情報を待つんだと。
Aは第一港、Bは第二港みたいに、その情報がどのプロトコルかを識別しているわけやな。
ちなみにHTTPはポート番号80で、SSHは22らしい。(SSH、22はどこかで使った記憶が....)
だから正確な書き方としては
www.dirty.jp:80
187.149.198.45:80
になるんだけど「:80」は省略されるって。
最後に
「GET」と「POST」
これは情報の渡し方、パラメータの渡し方の違い。
ん、「パラメータ」ってなんぞや.....。
例えば、
http://www.dirty.jp/unko/brown.php?num1=10&num2=20
がある。(入力欄に10と20を入れている)
パラメータはこれで言う、「num1」と「num2」。
「10」と「20」は値。
「?」以下をクエリ文字列と言って、「パラメータ名=値」の形式で表されている。
おっけ、パラメータ分かった!www
話を戻すと、
http://www.dirty.jp/unko/brown.php?num1=10&num2=20
はGETでの渡し方。
POSTはと言うと、
http://www.dirty.jp/unko/brown.php
になる。
お、クエリ文字列がないやんけ。
なぜか。
答えは「セキュリティ」の問題。
アカウント作るときにユーザ情報を入力するでしょ。
それって個人情報やん。
パラメータとしてそれがURLに出てきちゃったらマズいよねって話。
だからGETとPOSTはちゃんと使い分けよう。
まとめるとこう。
「GETリクエスト」
・メソッド:GETメソッド
・パラメータの格納場所:URL
・セキュリティ:低い(サーバにログが残る)
・パラメータの長さ:制限の可能性あり
・パラメータの保存・再現:しやすい
「POSTリクエスト」
・メソッド:POSTメソッド
・パラメータの格納場所:メッセージ・ボディ
・セキュリティ:比較的高い(サーバにログが残らないことが多い)
・パラメータの長さ:制限なし
・パラメータの保存・再現:しにくい
ざっとこんな感じ。
ではでは、今日はこの辺で。