【初心者向け】HTTPとは一体なに?基礎からわかりやすく解説!

HTTPのイメージ画像コンピュータ基礎

インターネットを利用していると、アドレスに「http」と入っていますよね。

これにはちゃんと意味があって、歴史も意外と奥深いんです!

今回は専門用語をできるだけ使わず、HTTPについて解説していきます。

HTTPとは?

『HyperText Transfer Protocol』の略称です。

『Webサーバ』と『クライアントのWebブラウザ』が、データを送受信するためのプロトコルです。

クライアントとは、手元のPCやスマホのことを言います。

プロトコルとは?

Protocolと書き、外交儀礼の意味を指します。

コンピュータ同士で通信する際、決められた手順や規格のことです。
このプロトコルで、データの形式、パケット(データの伝送単位)の構成、エラーの対処などが取り決められています。

取り決められていると何がいい?

少し歴史を紐解いていきましょう。

インターネットが使われ始めた当初、通信する際、同じメーカーのみで独自の通信ルールを定めていました。

初めは『同じメーカーの機器さえ繋がれば良いじゃん』という考えだったようです。

しかし、インターネットとコンピュータが徐々に普及していくにつれて、ユーザの不便さが目立つようになりました。
そこで異なるメーカー同士でも通信を可能にすべく、国際的にルールが取り決められました。

これが『プロトコル』です。
プロトコルがあるから、今私たちがメーカーや機種を気にせずに通信が行えるんですね。

【応用編】プロトコルの種類

OSI参照モデルの階層によって、使われるプロトコルは異なります。

ちなみに、OSI参照モデルは全部で7層あります。
以下はそのうち抜粋したものです。

●アプリケーション層

  • Webアクセスに使われるHTTP(Hypertext Transfer Protocol)
  • 電子メールのやりとりに使われるPOP(Post Office Protocol)、SMTP(Simple Mail Transfer Protocol)

●トランスポート層

  • 別のコンピューターへのデータ伝送を制御するTCP(Transmission Control Protocol)
  • ネットワーク上のほかのホストへデータグラムを送るUDP(User Datagram Protocol)

●ネットワーク層

  • IP(Internet Protocol)

●データリンク層

  • ネットワークの規格のEthernetなど

ちょっと難しいかもしれませんが、必ず理解しなければならないというわけではありません!

詳しい説明は以下の記事をご覧ください。

<準備中>

HTTPのメソッド

HTTPメソッドとは

HTTPは、サーバとクライアントの通信時に使われるプロトコルでしたね。

基本的にはサーバは受け取り待ち(受動的)、クライアントは依頼をする(能動的)立ち位置にいます。

HTTPメソッドとは、クライアントがサーバへして欲しいことを依頼する(リクエスト)ための方法です。

HTTPメソッドの種類

主に以下のようなものがあります。

  • GET
  • POST
  • PUT
  • DELETE

このほかにもありますが、まずは上記の4つから理解していきましょう。

GET

  • 参照
  • リクエスト元の手元で使えるように、データを取得します。
    • Webサイト閲覧(HTMLやCSS、画像、Javascriptの取得など)
    • APIを呼び出しデータ取得

POST

  • 新規作成
  • 副作用を伴うデータを送ることができます。
  • データを新規作成するときにも使用します。
    • 天気取得API(引数は市町村区など)
    • Webサイトの入力フォームからデータ送信
    • SNSでアカウントを新規作成
    • ブログ記事を新規投稿
    • Twitterでツイートする
    • Facebookでコメントを投稿する

PUT

  • 置換
  • データが存在するかどうか分からないときに使用します。
    • 存在する:更新
    • 存在しない:新規作成
  • 更新対象や更新内容を付与して送信できます。
  • 例:S3にあるURLにファイルをアップロードする

PATCH

  • 更新
  • 既にあるデータを上書きして更新・変更・修正します。
  • 例:ユーザ情報の変更

DELETE

  • 削除
  • 既にあるデータを削除します。
  • 削除対象の情報を付与して送信します。
    • カートの中の商品を削除
    • 既存のアカウント削除
    • ブログ記事の削除
    • ツイートの削除
    • コメントの削除

【補足】CRUD

システムが持つデータ操作を、さらに頭文字4つからとった言葉です。

  • C : Create
    • 登録
  • R : Read
    • 参照
  • U : Update
    • 変更
  • D : Delete
    • 削除

世の中にあるいろんなシステム、「この機能がないと始まらない」最低限必要な機能郡のことですね。

HTTPメッセージ

HTTPメッセージとは、サーバとクライアントがデータのやり取りをするための手段です。

HTTPメッセージの種類

HTTPメッセージには2種類のメッセージがあります。

  • リクエスト
    • クライアント⏩サーバ
    • サーバにアクションを起こさせる
  • レスポンス
    • クライアント⏪サーバ
    • サーバの回答内容である

私たち人間の会話と似ていますね。

  • 「Aというページの情報をください」→リクエスト
  • 「こちらがAのページの情報です」→レスポンス

HTTPメッセージの構造

HTTPメッセージは、リクエストとレスポンスで似た構造をしています。

  • 実行するリクエスト、または成功か失敗の状態を示す1行
  • リクエストの詳細を示す、またはメッセージに含まれる本文を説明するHTTPヘッダー
  • リクエストのメタ情報が全て送信されたことを示す空行
  • リクエストに関連づけられたデータ、レスポンスに関連づけられたドキュメントを含む本文。
  • 本文が存在することやそのサイズは、開始1行やHTTPヘッダーで指定する
/* リクエスト */
GET / HTTP/1.1
Accept: image/gif, image/jpeg, */*
Accept-Language: ja
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (Compatible; MSIE 6.0; Windows NT 5.1;)
Host: www.xxx.zzz
Connection: Keep-Alive

メッセージボディ(POSTメソッドなどで使用)

---

/* レスポンス */
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2004 16:06:23 GMT
Server: Apache/1.3.22 (Unix) (Red-Hat/Linux)
Last-Modified: Sun, 07 Dec 2003 12:34:18 GMT
ETag: "1dba6-131b-3fd31e4a"
Accept-Ranges: bytes
Content-Length: 4891
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html

:

まとめ

HTTPについて少しだけでも理解していただけたら嬉しいです。

少し深掘りした内容もありましたが、すぐに理解できなくて当たり前です。

わからないところがあったらその言葉で調べて、1つずつ知識を蓄積していきましょう!

タイトルとURLをコピーしました