ホームページ >バックエンド開発 >PHPチュートリアル >この URL の # が何を表しているのか教えてください。

この URL の # が何を表しているのか教えてください。

WBOY
WBOYオリジナル
2016-06-23 14:16:26801ブラウズ

URL ドメイン名

この URL の # が何を表しているのか教えてください。

http://xxx.cn#123-1234#baidu.com/test.htm?id=18826194086 この # の良い機能は何ですか?この URL のドメイン名は何ですか?

説明は詳しいほど良いです

ディスカッション(解決策)への返信

1. #
# の意味は、Web ページ内の位置を表します。右側の文字は位置の識別子です。例えば、

http://www.example.com/index.html#print

は、Webページindex.htmlの印刷位置を表します。ブラウザがこの URL を読み取ると、印刷位置が表示される領域まで自動的にスクロールされます。
Web ページの場所の識別子を指定するには 2 つの方法があります。 1 つは、 などのアンカー ポイントを使用する方法であり、もう 1 つは、

などの id 属性を使用する方法です。

2. HTTP リクエストには # が含まれません。 #
# はブラウザーのアクションをガイドするために使用され、サーバーにとってはまったく役に立ちません。したがって、HTTP リクエストには # は含まれません。
例えば以下のURLにアクセスしてください、
http://www.example.com/index.html#print
ブラウザから送信される実際のリクエストはこんな感じです:
GET /index.html HTTP/1.1
Host: www .example .com
Index.html をリクエストしているだけで、「#print」の部分がまったくないことがわかります。

3. # の後の文字
最初の # の後に表示される文字は、ブラウザによって位置識別子として解釈されます。これは、これらの文字がサーバーに送信されないことを意味します。
たとえば、次の URL の本来の目的は色の値を指定することです:
http://www.example.com/?color=#fff
ただし、ブラウザによって送信される実際のリクエストは次のとおりです:
GET /? color= HTTP/1.1
Host: www.example.com
「#fff」が省略されているのがわかります。 # が %23 にトランスコードされる場合のみ、ブラウザは # をリテラル文字として扱います。つまり、上記の URL は次のように記述する必要があります:
http://example.com/?color=%23fff

4. # を変更しても Web ページのリロードはトリガーされません
# 以降の部分を変更するだけでは、ブラウザーがリロードされるだけです対応する場所にスクロールすると、Web ページはリロードされません。
たとえば、
http://www.example.com/index.html#location1
から
http://www.example.com/index.html#location2
ブラウザは、からのインデックスを再リクエストしませんサーバー。

5. #を変更するとブラウザのアクセス履歴が変更されます
#以降の部分を変更するたびに、ブラウザのアクセス履歴に記録が追加されます。「戻る」ボタンで前の位置に戻ります。
これは、Ajax アプリケーションで特に便利です。さまざまな # 値を使用してさまざまなアクセス状態を表し、特定の状態にアクセスするためのリンクをユーザーに提供できます。
上記のルールは IE 6 と IE 7 には当てはまらず、# の変更によって履歴が増加することはないことに注意してください。

6. window.location.hash の # 値を読み取ります
属性 window.location.hash は読み取りおよび書き込み可能です。読み取り時はWebページのステータスが変化したかどうかを判断するために使用でき、書き込み時はWebページをリロードせずにアクセス履歴レコードが作成されます。

7. onhashchange イベント
これは HTML 5 の新しいイベントです。 # 値が変更されると、このイベントがトリガーされます。 IE8 以降、Firefox 3.6 以降、Chrome 5 以降、Safari 4.0 以降がこのイベントをサポートしています。
使用方法は 3 つあります:
Window.onhashchange = func;
デバイスは setInterval を使用して location.hash の変更を監視できます。

8. Google クロールのメカニズム #
デフォルトでは、Google のウェブ スパイダーは URL の # 部分を無視します。
ただし、Google は、Ajax によって生成されたコンテンツをブラウジング エンジンで読み取れるようにする場合、URL に「#!」を使用すると、それに続くコンテンツをクエリ文字列の値に自動的に変換することも規定しています。 _エスケープされた_フラグメント_。
たとえば、新しいバージョンの twitter の URL が以下であることを Google が検出した場合:
http://twitter.com/#!/username
別の URL を自動的にクロールします:
http://twitter.com/ ?_escaped_fragment_=/username
パス このメカニズムを使用して、Google は動的な Ajax コンテンツをインデックスに登録できます。
------------------------上記内容はRuan Yifengさんのブログより抜粋です

#の使い方は基本的にこれで、URLに対応させていただきます本館の答えはそこにあります

上の階で全て完了です - -

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。