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 データベース操作ツールインストール

推薦する

vue3ソースコード解析の簡単な実装方法

目次序文🍹準備🍲vue3 の使い方🍖 実装要約する序文最近、私の最初の公式 vue3 + ts プロ...

Linux システムで jmeter を実行し、ローカル メモリを最適化する方法の詳細な説明

1. Linuxシステムにクロスシステムファイル転送ツールをインストールするルートユーザーのルートデ...

MySQL 8.0.22 のインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 8.0.22のインストールと設定について記録します。具体的な内容は以下のとお...

element-uiのアップロードコンポーネントでファイルやその他のパラメータを転送する際の問題を分析する

最近、element-ui を統合したプロジェクトで vuethink を使用しました。以前は bo...

HTML doctype の役割の紹介

ドキュメント モードには次の 2 つの機能があります。 1. HTML文書を解析するためにどのHTM...

Alibaba Cloud centos7にmysql8.0.22をインストールする詳細なチュートリアル

1. MySQLインストールパッケージをダウンロードするまず、https://dev.mysql.c...

スライド効果を実現するためのネイティブJavaScript

ページ、特にホームページを作成するときは、通常、Web サイト全体の他のメイン ページにリンクできる...

CSS の ::before と ::after 疑似要素について知らないこと

CSS には、一般的には使用されない 2 つの疑似クラス、before と :after があります...

HTMLコードテキストボックスの制限入力テキストボックスが灰色になり、制限テキストボックスの入力

方法 1: readonly 属性を true に設定します。入力値=読み取り専用 readOnly...

JavaScript 配列重複排除ソリューション

目次方法1: set: データ型ではなくデータ構造であり、メンバーは一意である方法2: オブジェクト...

CSS でデジタル ページング効果のコードと手順を実装する方法

かなりの数のウェブサイトがデジタルページング効果を使用しています。たとえば、このサイトのページングも...

純粋な JS を使用して vue.js で双方向バインディング機能を実装する方法

目次まず、双方向バインディングを実装するアイデアについて説明します。これらの機能を実装するための j...

ウェブサイトはいつ広告を掲載すべきでしょうか?

最近、インターネットのベテランと「広告」について議論したのですが、彼から非常に興味深い意見を聞きまし...

HTML入力ボックスの最適化により、ユーザーエクスペリエンスと使いやすさが向上します。

ユーザーエクスペリエンスと使いやすさを向上させるために、入力ボックスなど、Web ページでユーザーが...

MySQL がタイムスタンプを使用するときにタイムゾーンの問題を無視できるのはなぜですか?

私はいつも、なぜMySQLデータベースのtimestampタイムゾーンの問題を無視できるのか疑問に思...