Nginx操作応答ヘッダー情報の実装

Nginx操作応答ヘッダー情報の実装

前提条件: ヘッダー情報操作をサポートするには、ngx_http_headers_module モジュールをコンパイルする必要があります。

ヘッダーを追加

これは、レスポンス ヘッダーにカスタム ヘッダー情報を追加することを意味します。命令は add_header name value [always]; です。location {} コンテキストの場合、http {}、server {}、location {} で使用できます。
これは、応答ステータス コードが 200、201 (1.3.10)、204、206、301、302、303、304、307 (1.1.16、1.0.13)、または 308 (1.13.0) の場合にのみ有効になります。always パラメータが指定されている場合、ステータス コードに関係なく、すべての応答でヘッダーが強制的に返されます。

注: 複数の add_header 命令を宣言できます。現在のブロックに add_header がない場合に限り、親によって宣言された add_header 情報が継承されます。

例えば:

サーバー{
 ヘッダーを123に追加します。

 位置 / {
  ルート / パス;
 }

 場所 /download/ {
  ヘッダーを追加します b 321;
 }
}

上記の例では、/download/ ルートにアクセスすると、b 321 などのヘッダーが返され、/ ルートにアクセスすると、親によって指定された a 123 などのヘッダーが返されます。

トレーラーを追加

これは、レスポンス ヘッダーの末尾にカスタム ヘッダー情報を追加することを意味します。命令は add_trailer name value [always]; です。http {}、server {}、location {}、if in location {} コンテキストで使用できます。レスポンス ステータス コードが 200、201、206、301、302、303、307、または 308 の場合にのみ有効になります。always パラメータが指定されている場合、すべてのレスポンスでヘッダー情報は無視されます。

注: 複数の add_trailer 命令を宣言できます。現在のブロックに add_trailer がない場合に限り、親によって宣言された add_trailer 情報が継承されます。

例については add_header を参照してください。

期限切れ

応答ヘッダーの「Expires」および「Cache-Control」フィールドを有効化または無効化、追加または変更します。ディレクティブは、expires [modified] time; または expires epoch | max | off; で、応答ステータス コードが 200、201 (1.3.10)、204、206、301、302、303、304、307 (1.1.16、1.0.13)、または 308 (1.13.0) の場合に有効になります。time パラメータには、正または負の時間を指定できます。 「有効期限」フィールドの時間は、現在の時間と time で指定された時間の合計として計算されます。 modified パラメータが使用されている場合 (0.7.0、0.6.32)、時間はファイルの変更時刻と time ディレクティブで指定された時刻の合計として計算されます。

さらに、「@」プレフィックスを使用して時刻を指定することもできます (0.7.9、0.6.34): expires @15h30m;

「Cache-Control」フィールドの内容は、指定された時点のシンボルによって異なります。

  • 負の時間 - 「Cache-Control: no-cache」
  • 時間は正の数または 0 です - "Cache-Control: max-age=t" t はディレクティブで指定された時間 (秒単位) です

epoch パラメータは、「Expires」を「Thu, 01 Jan 1970 00:00:01 GMT」に設定し、「Cache-Control」を「no-cache」に設定します。

max パラメータは、「Expires」を「Thu, 31 Dec 2037 23:55:55 GMT」に設定し、「Cache-Control」を 10 年に設定します。

off パラメータは、「Expires」および「Cache-Control」応答ヘッダー フィールドの追加または変更を無効にします。

最後の引数値には変数を含めることができます (1.7.9): 例:

マップ $sent_http_content_type $expires {
 デフォルトはオフです。
 アプリケーション/pdf 42d;
 ~画像/最大;
}

期限切れ $expires;

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Golangはhttpレスポンスヘッダーを設定し、レコードを埋めます
  • PHP ダウンロード ファイル、レスポンス ヘッダーを追加する簡単な例
  • PHP でショートリンクジャンプ後の実際のアドレスと応答ヘッダー情報を取得する方法

<<:  JavaScript進捗管理の詳しい説明

>>:  MySQL 5.7.21 解凍版インストール Navicat データベース操作ツールインストール

推薦する

JavaScript シングルスレッドと非同期の詳細

目次1. タスクキュー2. 混乱を招く問題を説明する1. setTimeout(f1,0)とは何です...

ウェブページエクスペリエンス: 計画と設計

1. デザインの方向性を明確にする<br />まず、どのユーザーを対象にデザインするのか...

HTML テーブルタグチュートリアル (17): テーブルタイトルの垂直配置属性 VALIGN

表のキャプションは表の上または下に配置でき、プロパティで調整できます。デフォルトのテーブル タイトル...

jQueryはバウンドボールゲームを実装します

この記事では、バウンドボールゲームを実装するためのjQueryの具体的なコードを参考までに共有します...

MYSQL クエリの効率を向上させる 10 の SQL ステートメント最適化テクニック

MySQL データベースの実行効率はプログラムの実行速度に大きな影響を与えます。データベースの効率的...

MySQL 派生テーブル(Derived Table)の簡単な使用例分析

この記事では、例を使用して、MySQL 派生テーブルの簡単な使用方法を説明します。ご参考までに、詳細...

ウェブページを自動更新するための 3 つのコード

実際、この効果を実現するのは非常に簡単で、この効果は特殊効果と呼ぶことすらできません。次のコードを ...

display:olck/none を使用してメニューバーを作成する方法

display:bolck/none によるメニューバーの完成の効果 図 1:まず、完成したエフェク...

CSS で複数の境界線を実装するためのヒント

1. 複数の国境[1]背景: ボックスシャドウ、アウトライン使用シナリオの多様性を考慮すると、複数の...

Vue.js での VNode の使用

VNodeとはvue.js には VNode クラスがあり、これを使用してさまざまな種類の vnod...

単一のMySQLテーブルを復元する手順

休憩中に、眠気を完全に吹き飛ばす電話がかかってきました。「開発者が更新 SQL を書くときに whe...

CSS+JS で水滴の波紋アニメーション ボタン効果を実装するサンプル コード

コードは次のようになります。 <!DOCTYPE html> <html lang...

ウェブサイト上で flv/MP4 やその他のビデオ ファイルを再生できない問題は、MIME タイプに関連しています。

ウェブサイトを作成している際に、flv や MP4 形式などのビデオ ファイルはローカルでは正常に再...

MySQL での外部キーの作成、制約、削除

序文MySQL バージョン 3.23.44 以降では、InnoDB エンジン タイプのテーブルは外部...

新しい Linux ファイル権限設定における umask の詳細な理解

序文起源は質問 1 です: umask が 022 に設定されている場合、作成するファイルのデフォル...