初めてのHTTP
自分の理解のため、そして、ネットで探してみても自分がしっくりくる説明がなかったので書いてしまおうってことで、HTTPについて説明していきます。(理解が誤っている箇所もあるかもしれませんが、ご了承ください。)
そもそもHTTPとは
Hypertext Transfer Protocol(ハイパーテキスト・トランスファー・プロトコル、略称 HTTP)とは、WebブラウザとWebサーバの間でHTMLなどのコンテンツの送受信に用いられる通信プロトコルである。 ハイパーテキスト転送プロトコルとも呼ばれる。httpは略称なんですね。WebブラウザとWebサーバがメッセージをやりとりする際の間を取り持つ何かってことも分かりました。ここまではわかったんですけど、通信プロトコルってなんやねん、という疑問が浮かびました。プロトコルとか日常生活でまず使わない単語ですし、スッと理解できません。というわけで、次は通信プロトコルについてWikipedia で調べてみました。
通信プロトコル(つうしんプロトコル、Communications protocol)、あるいはネットワーク・プロトコルは、ネットワーク上での通信に関する規約を定めたものである。「通信規約」や「通信手順」と訳す場合もある。
ここまで来るとちょっとわかってきました。httpとは、WebブラウザとWebサーバとの間でメッセージをやりとりするときのルールである、と。メールに例えると、
メールを送信するときのルールとして、タイトル、宛先、本文、が必要。ただし、本文は空でもいいけど宛先は必須。
- スタートライン
- ヘッダー
- 空行
- ボディ
筋骨隆々なボディビルダーの写真とまるでおじいちゃんがパソコン教室で作成したかのようなサイトが表示されたかと思います。(ちなみに別にボディビルをdisってはないです。むしろ私はボディビルはこれから来るんじゃないかと思ってます。)
Networkタブを選択し、Nameのところで一番上の「http://www.jbbf.jp/」を選択してみてください。すると、右側にResponse HeadersとRequest Headersが表示されたと思います。(WebブラウザからWebサーバに送ったメッセージがRequest Headersに、WebサーバからWebブラウザに返ってきたメッセージがResponse Headersに対応します。)初期表示としてはparse(整えられた)されたhttpメッセージが表示されていますが、view sourceをクリックすると、httpメッセージ本文が表示されます。Request Headersを見ていきましょう。
1行目の「GET / HTTP/1.1」がスタートラインに対応します。2行目以降がヘッダーです。今回の場合、ボディはありません。このように、Chromeを使用していれば低いハードルでhttpメッセージを確認することができます。
以上で、こんな感じでWebブラウザとWebサーバはメッセージをやり取りしてるんだ、というのがなんとなくわかったかと思います。ただし、「1行目のGETってなに?」とか「どんなときにボディにメッセージが書かれるの?」とかまだまだ疑問は残るかとは思います。私も全てを理解できているわけではないので、継続して理解を深めていきたいです。今回は初めてのHTTPということで、私がここ1週間くらいで初めてHTTPについて理解したことを書いていきました。続編があるかはわかりませんが、今後も定期的に自分が理解したことを、自分の理解のために、説明していくつもりです。