どの Web サイトでも、HTTP ヘッダーを正しく構成することが重要です。 見出しをテーマに多くの記事が書かれています。 ここでは、蓄積された経験と RFC ドキュメントをまとめました。 見出しの中には必須のもの、古いもの、混乱や矛盾を引き起こす可能性のあるものもあります。 お腹の袋を作りました
- 標準ヘッダーの値を設定します。
- 独自のカスタムヘッダーを追加します。
- HTTP プロトコルのバージョンを指定します: 1.0、1.1、2 (HTTP/2 がサポートされているかどうかを確認します)。
- リクエストメソッド、タイムアウト、サーバーに送信するポストデータを指定します。
- ビーンバッグは、サーバー応答に Last-Modified または ETag が含まれている場合、If-Modified-Since、If-None-Match リクエストに対する応答の正確性もチェックします。
私たちは究極の真実であるかのように振る舞うつもりはありません。 もちろん、個々のコンテンツや個々のプロジェクトについては、ずれが生じる可能性があります。 しかし、このサービスは何に注意すべきかを正確に教えてくれるので、見出しを編集するのに役立つかもしれません。 以下は検証サービスが注目する内容のリストです。 なぜそうなのか、読んでください
必須のヘッダー
- 日付
- テキスト コンテンツの文字セットを示す Content-Type、できれば utf-8
- テキスト コンテンツの Content-Encoding 圧縮
古くて不要なヘッダー
- 詳細な Web サーバーのバージョンを含むサーバー
- Xパワーバイ
- X_ASPNET-バージョン
- 期限
- プラグマ
- P3P
- ビア
- X-UA対応
セキュリティのために望ましいヘッダー
- X-コンテンツタイプ-オプション
- X-XSS-保護
- 厳格な輸送セキュリティ
- リファラー-ポリシー
- 機能ポリシー
- Content-Security-Policy または Content-Security-Policy-Report-Only を使用して、インライン スクリプトとスタイルを無効にします。
キャッシュ用ヘッダー
キャッシュ寿命が長い静的コンテンツには必須ですが、キャッシュ寿命が短い動的コンテンツには非常に望ましいです。
- 最終更新日
- Eタグ
- キャッシュ制御
- 変わります
- サーバーがヘッダー If-Modified-Since および If-None-Match に正しく応答することが重要です。
HTTP / 2
これでサーバーは HTTP/2 をサポートするはずです。 デフォルトでは、サービスは HTTP/2 経由でサーバーの動作をチェックします。 サーバーが HTTP/2 をサポートしていない場合は、HTTP/1.1 を選択します。
出所: habr.com