ホームページ >バックエンド開発 >PHPチュートリアル >サーバーが URL のハッシュ部分にアクセスできないのはなぜですか?
サーバー側で URL のハッシュ部分にアクセスできないのはなぜですか?
Web 開発では、URL はいくつかのコンポーネントで構成されます。プロトコル、ドメイン名、パス、ハッシュが含まれます。 「#」記号で示されるハッシュは、見出しやセクションなど、ページの特定の部分を識別するために使用されます。
質問:
ただし、URL のハッシュ部分がサーバー側で利用できないことが観察されています。たとえば、ユーザーがブラウザのアドレス バーに「http://www.foo.com/page.php?parameter=kickme#MOREURL」と入力した場合、サーバーは「#MOREURL」部分を受信しません。
答え:
はい、外部ツールを使用しない限り、URL のハッシュ部分にサーバーはアクセスできません。これは、ハッシュ コンポーネントがブラウザ クライアントによってのみ処理されるように意図されているためです。サーバーがそれを HTTP リクエストの一部として受信することはありません。
説明:
HTML 標準に従って、ハッシュ フラグメントはサーバーに送信されません。ブラウザはそれを解釈し、ページ上の特定の場所までスクロールするなど、さまざまな方法で処理します。この動作は、さまざまなブラウザーや PHP などのサーバー側テクノロジー間で一貫しています。
Wikipedia ではさらに詳しく説明されています。
「フラグメント識別子の機能は、URI の残りの部分とは異なります。つまり、その処理はサーバーからの参加がなく、クライアント側のみで実行されます。エージェント (Web ブラウザなど) が Web サーバーにリソースを要求すると、エージェントは URI をサーバーに送信しますが、送信はしません。代わりに、エージェントはサーバーがリソースを送信するのを待ってから、フラグメント値に従ってリソースを処理します。"
以上がサーバーが URL のハッシュ部分にアクセスできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。