【HTTP編】プロトコルの基本を学ぶ

HTTPプロトコルに関するまとめです。EdgeやSafari、Google Chromeなどのブラウザの裏でどのようなプロトコルが動作しているのか確認していきましょう。

OSI参照モデルとTCP/IPプロトコル

HTTPはHypertext Transfer Protocolの略称で、クライアントとWebサーバ間でリクエストのやりとりやHTMLデータの交換を行うプロトコルです。HTTPSはSSL/TLSで暗号化されたHTTPプロトコルです。

HTTPプロトコルの実行イメージ

リクエストメッセージのリクエスト行ではHTTPメソッド(コマンド)で処理要求を行い、メソッドと対象のパス、プロトコルバージョンなどが含まれます。

(例)GET /example HTTP/1.1
   メソッド|パス|プロトコルバージョン

代表的なメソッドは以下です。

  • GET
    指定したサーバリソースから情報を取得するメソッド。
    GETメソッドのデータはURLの一部としてクエリ文字列に含まれます。
    例えば、https://example.com/search?query=example のように、query=example がクエリパラメータとしてURLに含まれます。
    特徴としてBODY部がありません。

  • POST
    指定したサーバリソースへデータを送信するメソッド。
    データはリクエストのBODY部に格納されます。
    ログインフォームのIDやパスワードはこのメソッドで送信されます。

  • DELETE
    指定したサーバリソースのデータを削除するメソッド。

  • CONNECT
    プロキシサーバを経由する場合などに用いるメソッド。
    トンネルを確立します。

HTTPリクエストヘッダ

リクエストヘッダ部には主に以下のような項目が存在します。

  • Host
    接続先のホスト名を指定します。

  • Referer
    直前に接続していたURLの情報。

  • Authorization
    認証情報

  • User-Agent
    OS、ブラウザ、バージョン、端末情報 etc

  • X-Forwarded-For
    プロキシやLoad Balancerを経由する場合の接続元のクライアント情報が格納される。


HTTPレスポンスヘッダ

レスポンスヘッダ部には主に以下のような項目が存在します。

  • HSTS
    クライアントにHTTP通信を強制するオプション。

  • Location
    リダイレクト先のURLを格納します。

  • Cache-Control
    キャッシュに関する動作を指定します。
    no-cache 
    →キャッシュ利用可、都度更新がないか有効性の確認を強制する。
    no-store
    →キャッシュ利用不可。保存を禁止する。
    max-age
    →有効期間の設定。TTLみたいなもの。単位は秒

  • X-Frame-Options
    主にクリックジャッキングへの対策で指定されるオプションです。
    このオプションがない場合、どのサイトからでも埋め込み表示が可能となります。以下のパラメータを指定できます。

    DENY
    →他のページからの埋め込み表示を全て拒否する。
     iframeタグ、embedタグ、objectタグ

    SAMEORIGIN
    →サイトが同じホスト名とポート番号、スキームすべて一致(オリジンが同じ)の場合、埋め込み表示を許可する。


Cookie

CookieはWebサーバがクライアントへユーザーの情報を一時的に保存するために送信されます。これにより、Webサイトはユーザーの設定や行動を記憶し、次回のアクセス時に同じ情報を再利用することができます。キャッシュが表示速度などパフォーマンス向上に利用されるのに対し、Cookieは個人毎への提案や最適化に利用されます。IDやパスワードが格納される場合があります。





この記事が気に入ったらサポートをしてみませんか?