lecture/information/networks/HTTPの基本-講義.n.md
HTTP の基本
informationnetworksundergraduatelecture
導入
この講義で最重要なのは、HTTP は「Web ブラウザが何を欲しいかを伝え、サーバーがそれに答える」ための約束だということです。
通信を学び始めると、TCP や IP のような下の層と、HTTP のような Web の約束が混ざりやすくなります。ここでは、HTTP は「内容の受け渡し方を決める層」として整理します。
用語と定義
HTTP とは、クライアントとサーバーが要求と応答を交換するためのプロトコルです。
Request とは、クライアントがサーバーへ送る要求です。
Response とは、サーバーがクライアントへ返す応答です。
方針
まず HTTP を「要求と応答の対」として見ます。そのあと、要求行、ヘッダ、本文という部品に分けて読みます。
直感的な説明
ブラウザでページを開くときは、「この URL の内容を送ってください」と頼み、サーバーが「はい、これです」あるいは「見つかりません」などと返事します。HTTP は、この頼み方と返事の書式を決めています。
厳密な説明
1. 要求
HTTP 要求は、おおまかに
\text{method} + \text{path} + \text{headers} + \text{body}
で見ます。
たとえば
\texttt{GET /index.html HTTP/1.1}
は、「/index.html を取得したい」という要求です。
2. 応答
サーバーは状態を表す番号とともに返事します。
\texttt{200 OK}
は成功、
\texttt{404 Not Found}
は見つからないことを表します。
3. GET と POST
GET は主に取得、POST は主に送信で使います。ただし、本質は「何をしたいかを動詞として表す」ことです。
見分け方
- ブラウザとサーバーの間で「何を求め、何が返るか」を考えるときは HTTP です。
- IP アドレスや経路ではなく、URL、GET、POST、200、404 が前面に出たら HTTP の話です。
- TCP は「確実に運ぶ」、HTTP は「何を頼みどう返すかを決める」と区別します。
最終形
\boxed{\text{HTTP}=\text{request と response の約束}}
\boxed{\texttt{GET} \text{ は取得, } \texttt{POST} \text{ は送信の基本}}
一言でいうと
- HTTP は、Web で何を欲しいかを伝え、その返答を受け取るための約束です。