Часть привязки URL отправлена в веб-сервер?

Скажите, существует URL http://www.example.com/#hello

  1. Если #hello вещь быть отправленным в веб-сервер или нет, согласно стандартам?
  2. Как современные браузеры действуют?

Обновление: не игнорируйте первый вопрос.

14
задан codeholic 18 June 2010 в 06:25
поделиться

3 ответа

Ответ на этот вопрос аналогичен ответам на /questions/774136. В основном, согласно стандарту @ faqs.org/rfcs/rfc1808.html (см. раздел 2.4.1) говорится: ""Обратите внимание, что идентификатор фрагмента не считается частью URL". Как заметил "stephbu", "тег якоря никогда не отправляется как часть HTTP-запроса любым браузером, он интерпретируется только локально в браузере".

15
ответ дан 1 December 2019 в 12:12
поделиться

Хеш-переменные вообще не отправляются на веб-сервер.

Например, запрос к http://www.whatismyip.org/#test из Firefox отправляет следующий пакет HTTP-запроса

GET / HTTP/1.1
Host: www.whatismyip.org
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Cache-Control: max-age=0

. Вы заметите, что # нигде нет. Страницы, на которых вы видите # как форму навигации, делают это через javascript. Этот параметр доступен через переменную window.location.hash

8
ответ дан 1 December 2019 в 12:12
поделиться

Часть привязки (после #) не отправляется никаким переменным $ _SERVER в PHP. Я не знаю, есть ли способ получить эту информацию из URL-адреса или нет (насколько мне известно, это невозможно). Предполагается, что он будет использоваться браузером только для поиска местоположения на странице, поэтому страница не перезагружается, если вы нажимаете на привязку, например: привет

1
ответ дан 1 December 2019 в 12:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: