ヘッダーオブジェクト

導入

ヘッダーは、HTTP メッセージのデータ ヘッダーを表します。

Headers() コンストラクターを通じてインスタンス オブジェクトを生成します。 Request.headers プロパティと Response.headers プロパティは、Headers インスタンス オブジェクトを指します。

Headers インスタンス オブジェクト内では、HTTP メッセージ ヘッダーはキーと値のペアの形式で保存されます。これは、「for (const p of myHeaders)」などの「for...of」ループを使用すると容易になります。新しく作成された Headers インスタンス オブジェクトは内部的には空であるため、append() メソッドを使用してキーと値のペアを追加する必要があります。

コンストラクター

Headers() コンストラクターは、新しい Headers インスタンス オブジェクトを作成するために使用されます。

const myHeaders = 新しいヘッダー();

HTTP ヘッダーを表すオブジェクト、または別の Headers インスタンス オブジェクトをパラメーターとして受け入れることができます。

const httpHeaders = {
  "Content-Type": "image/jpeg",
  "X-My-Custom-Header": "ジークはクールです",
};
const myHeaders = 新しいヘッダー(httpHeaders);

最後に、キーと値のペアの配列をパラメーターとして受け入れることもできます。

const ヘッダー = [
  ["Set-Cookie", "greeting=hello"],
  ["Set-Cookie", "name=world"],
];
const myHeaders = 新しいヘッダー(ヘッダー);

##インスタンスメソッド

追加()

append() メソッドはフィールドを追加するために使用されます。フィールドがすでに存在する場合は、新しい値が既存の値の末尾に追加されます。

2 つのパラメータを受け入れます。1 つ目はフィールド名、2 つ目はフィールド値です。戻り値はありません。

append(名前, 値)

以下に使用例を示します。

const myHeaders = 新しいヘッダー();
myHeaders.append("Content-Type", "image/jpeg");

以下は同名のフィールドが既に存在する場合です。

myHeaders.append("Accept-Encoding", "deflate");
myHeaders.append("Accept-Encoding", "gzip");
myHeaders.get("Accept-Encoding"); // 'deflate、gzip'

上の例では、Accept-Encoding フィールドがすでに存在しているため、append() によって元の値の末尾に新しい値が追加されます。

消去()

delete() はキーと値のペアを削除するために使用され、パラメータ name は削除されたフィールドの名前を指定します。

削除(名前)

パラメータ name が有効なフィールド名ではない場合、または削除できないフィールドである場合、上記のコマンドはエラーをスローします。

以下に使用例を示します。

const myHeaders = 新しいヘッダー();
myHeaders.append("Content-Type", "image/jpeg");
myHeaders.delete("コンテンツタイプ");

エントリ()

entries() メソッドは、すべてのキーと値のペアを走査し、for...of ループで使用するイテレータ ポインタを返すために使用されます。

const myHeaders = 新しいヘッダー();
myHeaders.append("Content-Type", "text/xml");
myHeaders.append("Vary", "Accept-Language");

for (myHeaders.entries() の const ペア) {
  console.log(`${ペア[0]}: ${ペア[1]}`);
}

forEach()

forEach() メソッドは、すべてのキーと値のペアを走査し、指定されたキーと値のペアごとに指定された関数を実行するために使用されます。

最初のパラメータはコールバック関数 callbackFn で、2 番目のパラメータ thisArgcallbackFn によって使用される this オブジェクトです。

forEach(コールバックFn)
forEach(callbackFn, thisArg)

コールバック関数 callback は次のパラメータを受け取ります。

  • 値: 現在のフィールドの値。
  • キー: 現在のフィールド名。
  • オブジェクト: 現在実行中のヘッダー オブジェクト。

以下に使用例を示します。

const myHeaders = 新しいヘッダー();
myHeaders.append("コンテンツタイプ", "アプリケーション/json");
myHeaders.append("Cookie", "これはデモ Cookie です");
myHeaders.append("圧縮", "gzip");

myHeaders.forEach((値, キー) => {
  console.log(`${key} ==> ${value}`);
});

得る()

get() メソッドは、指定されたフィールドのフィールド値を取得するために使用され、そのパラメータはフィールド名です。フィールド名が不正な場合 (たとえば、中国語の文字が含まれている場合)、エラーがスローされます。フィールドが現在の Headers オブジェクトに存在しない場合は、「null」が返されます。

取得(名前)

以下に使用例を示します。

myHeaders.append("Content-Type", "image/jpeg");
myHeaders.get("コンテンツタイプ"); // "画像/jpeg"

現在のフィールドに複数の値がある場合、get() はすべての値を返します。

getSetCookie()

getSetCookie() は、Set-Cookie によって設定されたすべての Cookie 値を含む配列を返します。

const ヘッダー = 新しいヘッダー({
  "Set-Cookie": "名前1=値1",
});

headers.append("Set-Cookie", "name2=value2");

headers.getSetCookie();
// ["名前1=値1", "名前2=値2"]

もっている()

has() は、Headers オブジェクトに指定されたフィールドが含まれているかどうかを示すブール値を返します。

(名前)がいます

パラメータ「name」が有効な HTTP ヘッダー フィールド名ではない場合、このメソッドはエラーを報告します。

以下に使用例を示します。

myHeaders.append("Content-Type", "image/jpeg");
myHeaders.has("コンテンツタイプ"); // true
myHeaders.has("Accept-Encoding"); // false

キー()

keys() メソッドは、Headers データ ヘッダーのすべてのフィールド名を走査するために使用されます。 for...of で使用する反復子オブジェクトを返します。

const myHeaders = 新しいヘッダー();
myHeaders.append("Content-Type", "text/xml");
myHeaders.append("Vary", "Accept-Language");

for (myHeaders.keys() の const キー) {
  コンソール.ログ(キー);
}

セット()

set() メソッドは、指定されたフィールドにフィールド値を追加するために使用されます。フィールドが存在しない場合はフィールドを追加し、フィールドが既に存在する場合は古い値を新しい値に置き換えます。これが append() メソッドとの主な違いです。

最初のパラメータ name はフィールド名で、2 番目のパラメータ value はフィールド値です。

set(名前, 値)

以下に使用例を示します。

const myHeaders = 新しいヘッダー();
myHeaders.set("Accept-Encoding", "deflate");
myHeaders.set("Accept-Encoding", "gzip");
myHeaders.get("Accept-Encoding"); // 'gzip'

上記の例では、set() を 2 回連続して使用して Accept-Encoding に値を割り当てると、2 番目の値が最初の値を上書きします。

値()

values() メソッドは、Headers オブジェクトのフィールド値を反復処理するために使用されます。 for...of で使用する反復子オブジェクトを返します。

const myHeaders = 新しいヘッダー();
myHeaders.append("Content-Type", "text/xml");
myHeaders.append("Vary", "Accept-Language");

for (myHeaders.values() の定数値) {
  console.log(値);
}

作者: wangdoc

アドレス: https://wangdoc.com/

ライセンス: クリエイティブ・コモンズ 3.0