HTTPとは
HyperText Transfer Protocolの略
日本語にすると:ハイパーテキストを通信するプロトコルということ
ハイパーテキスト=HTML文書
プロトコル=約束事
つまり:HTML文書を通信し合う時の約束
ノード同士が、HTML文書をインターネット経由で送りたい時に、どのようにして送るのか、それを実現するのか、決めたもの
プロトコルとは
規約に近いもの
例えばの話。
偉い人がいる、下っ端の人がいる
偉い人が、偉い人に話しかける時は、
「こんにちは」
で話しかける。
そのあとに、要件を伝える。
「この資料を見といてほしい」
最後に、
「また今度」
これで、一連の通信が終わる
逆に、偉い人が、下っ端の人に話しかける
「おい」
で話しかける。
そのあとに、要件を伝える。
「この資料を見といてくれ」
最後に、
「ほんじゃあな」
これで、一連の通信が終わる
といった具合に、通信の規約を定めておくことで、通信を実現する
HTTPリクエストとは
クライアントからサーバに向けて送信する情報
例:ほにゃらら(URL)のWEBサイトを見せて
HTTPリクエストの中身は、
①リクエストライン
②リクエストヘッダ
③リクエストメッセージボディ
で構成されている
①リクエストラインには、
「何 を、 どう したいのか」が記載されている
何とは、どのURLに対して
どうとは、どんな処理を求めてるのか
どう:リクエストメソッドと言う
リクエストメソッド
先に言うと、詳しくは:このページを見なさい
リクエストメソッドて何
HTTPリクエストに含まれるHTTPリクエストラインに含まれるどうするかの部分
リクエストメソッドの種類は、以下の9つ
GET:欲しい(言うことを理解した上で、返信よこせ)
HEAD:欲しい(言うことないから、とにかく返信よこせ)
POST:これをしなさい
PUT:表示内容の一部を変えなさい
DELETE:削除しなさい
CONNECT:サーバーさん、俺と繋がろうよ
OPTIONS:通信するときに、こうしようよ
TRACE:※私には、理解できなかった→他の文献を見てくれ
PATCH:あなたのこの部分を変えなさい
②リクエストヘッダには
よくわからない情報がたくさん書いてあるだけ
とにかく、これを読んで理解してください
③メッセージボディとは
書いてある場合と書いてない場合がある
クライアントからサーバに送りたい情報がある時にだけ、記載される
例えば、GETの時には何も記載されない。POSTの時は、記載される
HTTPレスポンス
サーバからクライアントに送信される情報
例:ほにゃららのサイトはこれだよ!ほいっっ!!
HTTPレスポンスの構成は、下記の3つ
レスポンスステータスライン
レスポンスヘッダ
レスポンスメッセージボディ
①レスポンスステータスライン
レスポンスの結果が、記載されている
②レスポンスヘッダ
レスポンス自体に関するデータが記載されている
いつレスポンスを返したか
どのサーバがレスポンスを返したか
など
③レスポンスメッセージボディ
リクエストされたデータそのものが記載されている
HTML文書そのものですね
※ここで疑問:付属で必要な画像は、どうなるんだろう(後で、メンターに聞いてみよう)
HTTPレスポンスのステータスラインの種類
詳しくは、これを見てくれ
私は、めんどいので、下記だけ、書く
200:リクエストは成功しました。
201:リクエストは、正常に実行されました。
204:レスポンスはないが、リクエスト成功してんぜ?
301:URLを返すから、そっちを見てくれ!
400:おいおい、そんなリクエストは構文が間違ってて意味わかんねー。処理できないわ〜〜〜
401:おいおい、認証しといてくんないと、レスポンス返せないぜーー
403:おいおい、認証が拒否られてんぜ?なんとかしてくれーー
404:リクエストしてくれたのは嬉しいけど、そのデータみつかんないぜ?
500:ごめん、そのリクエストの処理方法、こっちにはわからない
HTTP通信とは
・・・