ソケットとかHTTPのメモ
クライアントとサーバーのコネクションの確立についていろいろ調べたのでそのまとめメモ。
Sockets
ネットを使ったコネクションはソケットというものを使って行われる。
ソケットというのは2本のパイプがクライアントとサーバーとの間にあって、その2本のパイプを使って情報のやり取りを行うもの。と考えればいい。
情報のやり取りを行う手順は
1.クライアント側で行先(普通はサーバーのIP)と着地点(ポート)を決めて接続
2.クライアント側がそこに何がしたいかっていう情報を流し込む
3.サーバー側がそれにこたえて情報を流し込む
4.クライアント側が流れてきた情報を読む
5.クライアント側がソケットを閉じる
ざっくりやるとこの一連の流れが基本らしい。クライアント側の処理は1,2,4,5の4つがあればいい。
だけどこれだとざっくりしすぎていて、
「サーバーが見つからない」
「情報を流し込んだけどサーバーが応答しない」
などなどエラー処理を自分で実装しなければならない。
そこでHTTP
HTTP
Webアプリケーションをつくるエンジニアとしては、そういったlower levelな処理よりその接続を使って何をするかに注力したい。
それで利用されるようになったのがHTTPっていうプロトコル(約束ごととか決め事)。
This should appeal to our laziness.なんて書かれてるからまあ、そういうことなんだろう。自分で接続作る作業に約束事が出来るから自分で考えて実装する必要がない。楽ちん。
(自分でソケット用意して接続するのはチャットなんかを作るときにやったりするらしい)
よく見かける404 File Not Foundとか403 ForbiddenはHTTPがやってくれるエラー表示の有名なやつ。
接続を自前で作ると、この辺も自分でやる必要が出てくる。
HTTPはソケットのところで説明したように、クライアント対サーバーのリクエスト→レスポンスのサイクルを取る。
HTTPのこのサイクルの中でどんな情報が行き来してるかを見るなら、このchromeプラグインが見やすい。
上部にあるアドレス欄に何かしらを入力して、Sendボタンクリックでいわゆるリクエストを送信。
下に表示されるのがサーバーからのレスポンス。
レスポンスにはHEADER情報とBODY情報がある。(htmlのheadタグbodyタグとはべつもん)
詳しいことは解説してるサイトとか書籍がいっぱいあるからそこをみながらこれで実験してみればいい。
「HTTP リクエスト」とかでぐぐればいんじゃないかな
このプラグインはリクエストの方の中身もいろいろ変えて遊べる。便利。