1. 開発者向けのウェブ技術
  2. HTTP
  3. ガイド

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

HTTP ガイド

このページでは、 HTTP のガイドを紹介します。 HTTP プロトコルを使用して、どのようなことができるかを理解するに役立つものです。

Cookie(ウェブ Cookie、ブラウザー Cookie とも呼ぶ)は、サーバーがユーザーのウェブブラウザーに送信する小さなデータです。ブラウザーは Cookie を保存したり、新しい Cookie を作成したり、既存の Cookie を変更したり、後でリクエストされたときに同じサーバーにそれらを送り返したりすることができます。 Cookie により、ウェブアプリケーションは限られた量のデータを格納し、状態についての情報を記憶することができます。HTTP プロトコルは既定ではステートレスだからです。

HTTP キャッシュ

HTTP キャッシュは、リクエストに関連付けられたレスポンスを格納し、格納されたレスポンスを後続のリクエストのために再利用します。

HTTP クライアントヒント

クライアントヒント (Client hints) は、サーバーがクライアントに積極的にリクエストすることで、端末、ネットワーク、ユーザー、およびユーザーエージェント固有の環境設定に関する情報を取得することができる HTTP リクエストヘッダー フィールド群です。 サーバーは、クライアントが提供することを選んだ情報に基づいて、送信するリソースを決定することができます。

HTTP のリダイレクト

URL リダイレクトは、「URL 転送」とも呼ばれ、ページ、フォーム、ウェブサイト全体、ウェブアプリケーションなどに 2 つ以上の URL のアドレスを与える技術です。 HTTP ではこの操作のために、特別な種類のレスポンスである HTTP リダイレクトを提供しています。

HTTP の圧縮

圧縮は、ウェブサイトのパフォーマンスを向上させるための重要な手段です。文書によっては、必要な帯域を最大 70% 削減するほどサイズが縮減します。長年かけてアルゴリズムはより効率的になり、またクライアントおよびサーバーが新たなアルゴリズムに対応してきました。

HTTP の概要

HTTP は、 HTML 文書などのリソースを読み取るためのプロトコルです。 これはウェブにおけるデータ交換の基礎をなし、クライアントサーバープロトコルであり、リクエストは受け取り者(一般にはウェブブラウザー)が生成します。 文書全体は、テキストコンテンツ、レイアウト指示、画像、動画、スクリプトなどのリソースから構成されます。

HTTP の進化

HTTP (HyperText Transfer Protocol) は World Wide Web を支えるプロトコルです。1989 年から 1991 年にかけてティム・バーナーズ=リーとそのチームによって開発された HTTP は、その柔軟性を形成しながら分かりやすさを維持するために、多くの変化を遂げてきました。HTTP が、実験室でファイルを交換するためのプロトコルから、高解像度や 3D の画像や動画を伝送する現代のインターネットの迷宮へと進化していった経緯をご紹介します。

HTTP メッセージ

HTTP メッセージ は、HTTP プロトコルでサーバーとクライアント間でデータを交換するために使用されるメカニズムです。 メッセージには 2 種類あります。サーバーで措置を開始するためにクライアントから送信されるリクエストと、リクエストに対するレスポンスとしてサーバーから送信されるレスポンスです。

HTTP 条件付きリクエスト

HTTP には「条件付きリクエスト」の概念があり、対象となるリソースと検証子の値とを比較することで、リクエストの結果や、成功か失敗かまでもが変化することがあります。 これらのリクエストは、キャッシュされたコンテンツを検証し、ブラウザーで既に利用できるコピーと異なる場合にのみ取得するようにするために役立ちます。 条件付きリクエストは、ダウンロードを再開する際に文書の整合性を確保したり、サーバー上の文書をアップロードまたは変更する際に更新が失われるのを防ぐためにも役立ちます。

HTTP 範囲付きリクエスト

HTTP の範囲付きリクエスト (Range) では、サーバーにリソースの一部のみを送り返すように指示することができます。 範囲付きリクエストは、ランダムアクセスに対応しているメディアプレーヤー、大きなファイルの一部のみを必要とするデータツール、ダウンロードを一時停止および再開できるダウンロードマネージャーなど、さまざまなクライアントに役立ちます。

HTTP 認証

HTTP はアクセス制御と認証の基本的な枠組みを提供しています。 このページでは、 HTTP の認証の枠組みを紹介し、サーバーで HTTP の "Basic" 認証を使用してアクセスを制限する方法を紹介します。

HTTP/1.x のコネクション管理

コネクション管理は、 HTTP の重要なトピックです。コネクションを開いたり管理したりすることは、ウェブサイトやウェブアプリケーションのパフォーマンスに大きな影響を与えます。HTTP/1.x では「短命な (short-lived) コネクション」、「持続的な (persistent) コネクション」、「HTTP パイプライン」といったモデルがあります。

MIME タイプ(IANA メディア種別)

メディア種別(以前は Multipurpose Internet Mail Extensions または MIME タイプと呼ばれていました)は、文書、ファイル、またはバイト列の性質や形式を示します。 MIME タイプは IETF の 6838 で定義され、標準化されています。

User-Agent の削減

User-Agent の削減は、ユーザーエージェント (UA) 文字列で指定されるプライバシーに配慮すべき情報の量を縮小するための、広く受け入れられているブラウザーの取り組みです。

オリジン間リソースポリシー (CORP)

オリジン間リソースポリシーHTTP の Cross-Origin-Resource-Policy ヘッダー によって設定されるポリシーで、ウェブサイトやアプリケーションが他のオリジンから (<script><img> などの要素を使用して発行された) 特定のリクエストに対する保護をオプトインすることで、 Spectre のような投機的なサイドチャネル攻撃や、クロスサイトスクリプトインクルージョン攻撃を緩和することができます。 CORP はデフォルトで同一オリジンポリシーを超えた保護の追加レイヤーです。

オリジン間リソース共有 (CORS)

オリジン間リソース共有 (Cross-Origin Resource Sharing, CORS) は、 HTTP ヘッダーベースの仕組みを使用して、あるオリジンで動作しているウェブアプリケーションに、異なるオリジンにある選択されたリソースへのアクセス権を与えるようブラウザーに指示するための仕組みです。ウェブアプリケーションは、自分とは異なるオリジン (ドメイン、プロトコル、ポート番号) にあるリソースをリクエストするとき、オリジン間 HTTP リクエストを実行します。

コンテンツセキュリティポリシー (CSP)

コンテンツセキュリティポリシー (CSP) は、特定の種類のセキュリティ脅威のリスクを防止または最小限に抑えるのに役立つ機能です。これは、ウェブサイトからブラウザーへの一連の指示で構成されており、サイトを構成するコードが実行できることを制限するようにブラウザーに指示します。

コンテンツネゴシエーション

HTTP においてコンテンツネゴシエーション (content negotiation) は、同じ URI におけるさまざまな表現のリソースを提供するために使用する仕組みであり、ユーザーエージェントはどのリソースがユーザーにもっとも適しているか(例えば文書の言語はどれか、画像形式はどれか、コンテンツエンコーディングはどれか)を指定することができます。

ネットワークエラーログ記録 (NEL)

ネットワークエラーログ記録は、HTTP の NEL レスポンスヘッダーを使って設定できる機構です。この実験的なヘッダーにより、ウェブサイトやアプリケーションは、対応しているブラウザーから、失敗した(必要であれば成功した)ネットワーク読み取りに関するレポートを受け取ることを選択することができます。

プロキシーサーバーとトンネリング

インターネットのさまざまなネットワークを移動するときに、プロキシーサーバーと HTTP トンネルは、 World Wide Web 上のコンテンツへのアクセスを容易にしています。プロキシーはユーザーのローカルコンピューター、またはユーザーのコンピューターとインターネット上の送信先サーバーの間の任意の場所に配置できます。このページではプロキシーに関するいくつかの基本を概説し、いくつかの設定オプションを紹介します。

プロトコルのアップグレードの仕組み

HTTP/1.1 プロトコルは、 Upgrade ヘッダーフィールドを使用して、既に確立された接続を別のプロトコルにアップグレードするために使用することができる特別な仕組みを提供します。

ユーザーエージェント文字列を用いたブラウザーの判定

サーバーへのすべてのリクエストに対して、ブラウザーは User-Agent HTTP ヘッダーを、ユーザーエージェント (UA) 文字列と呼ばれる値とともに付加します。 この文字列は、ブラウザー、そのバージョン番号、およびホストのオペレーティングシステムを識別することを意図しています。

典型的な HTTP セッション

HTTP のようなクライアントサーバープロトコルでは、セッションが 3 つの段階で構成されます。

圧縮辞書転送

圧縮辞書転送は、共有の圧縮辞書を使用して HTTP レスポンスの転送サイズを大幅に縮小する方法です。

権限ポリシー

権限ポリシーは、ウェブ開発者がウェブサイト上でどの機能が使用できるか (または使用できないか) を明示的に宣言する仕組みを提供します。サイトのコードがアクセスできる API や、特定の機能についてブラウザーの既定の動作を変更するかどうかを制限する「ポリシー」を設定します。これにより、使用可能な機能を制限することによって、コードベースが時とともに進化しても — サードパーティーのコンテンツをより安全に構成する場合と同様に — ベストプラクティスを維持することができます。

無信頼の iframe

無信頼の iframe は、開発者が新しい、一時的なコンテキストを使用して iframe でサードパーティ製のリソースを読み込むためのメカニズムを提供します。これは、通常のオリジンのネットワーク、クッキー、ストレージデータにアクセスすることはできません。最上位の文書の寿命を限度とした新しいコンテキストを使用します。結果的に Cross-Origin-Embedder-Policy (COEP) 埋め込みルールを解除することができるので、COEP を設定した文書に、そうでないサードパーティーの文書を埋め込むことができます。

MDN の改良に協力

協力方法を知る

このページは MDN の貢献者によって に最終更新されました。

AltStyle によって変換されたページ (->オリジナル) /