【HTTP編】プロトコルの基本を学ぶ
HTTPプロトコルに関するまとめです。EdgeやSafari、Google Chromeなどのブラウザの裏でどのようなプロトコルが動作しているのか確認していきましょう。
HTTPはHypertext Transfer Protocolの略称で、クライアントとWebサーバ間でリクエストのやりとりやHTMLデータの交換を行うプロトコルです。HTTPSはSSL/TLSで暗号化された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、ブラウザ、バージョン、端末情報 etcX-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やパスワードが格納される場合があります。
この記事が気に入ったらサポートをしてみませんか?