リダイレクト中の HTTP ヘッダーのカスタマイズ
header("Location: http://... ")、開発者は多くの場合、リダイレクト リクエストにカスタム HTTP ヘッダーを含めるという課題に直面します。提供されたコードはリダイレクト プロセスを開始しますが、追加のヘッダーを指定することはできません。
誤った情報への対処
オンラインで出回っているいくつかの誤った回答とは対照的に、リダイレクトはカスタム ヘッダーを持つページにアクセスすることは、どの言語やフレームワークを使用しても実現できません。その理由は、HTTP リダイレクトの性質にあります。サーバーがリダイレクトを発行すると、3xx ステータス コードを含む応答が送信され、クライアントに新しい場所への別の HTTP リクエストを作成するように指示されます。この後続のリクエストは、デフォルトのヘッダー、またはターゲット ページによって特別に設定されたヘッダーの影響を受けます。
ブラウザの制限
ブラウザは、HTTP ヘッダーの管理において重要な役割を果たします。受信した応答ヘッダーを解釈して、リダイレクトの処理方法を決定します。ただし、ブラウザには、リダイレクト要求自体にヘッダーを変更したり追加したりする機能はありません。この制限は、そのような変更を許可すると潜在的な脆弱性が生じるため、セキュリティ上の考慮事項から生じています。
代替ソリューション
カスタム ヘッダーを使用した直接リダイレクトは不可能であるため、代替アプローチを使用する必要があります。探求される。実行可能なオプションの 1 つは、JavaScript と XMLHttpRequest (XHR) オブジェクトを使用して非同期リクエストを開始することです。 XHR を利用すると、リクエストでカスタム ヘッダーを指定し、クライアント側でリダイレクト プロセスを制御できます。
もう 1 つの考えられる解決策には、リクエストを転送する前にヘッダーを変更できるサーバー側のプロキシまたはゲートウェイを使用することが含まれます。目的のページへ。このアプローチでは、リダイレクト応答にカスタム ヘッダーを挿入できますが、追加のサーバー側構成が必要となり、パフォーマンスのオーバーヘッドが発生する可能性があります。
以上がPHP で HTTP リダイレクト中に HTTP ヘッダーをカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。