Почему Twitter использует хеш и восклицательный знак в URL-адресах и как они переписывают поисковые URL?
Мы понимаем, что хэш предназначен для поиска AJAX, но восклицательный знак? Кто-нибудь знает?
Кроме того, атрибут "действие" для своей формы поиска указывает на "/search", но когда вы проводите поиск, в URL-адрес появляется знак восклицания. Они просто перенаправляются из "/search" в "/#!/Search"?
Примечание: вторая часть q остается без ответа: то есть они перенаправляют пользователя из "/search" в "/#!/search" или отправляют пользователя в "/search" и использовать JS на странице, чтобы переписать URL-адрес? - Crashalot 26 января в 23:51
Спасибо!
Ответы
Ответ 1
Чтобы ответить на вторую часть, выполните следующие действия: она перенаправляет вас на /#!/search.
Если вы посмотрите на заголовки ответов при переходе на http://twitter.com/britishdev (plug-plug), вам возвращается 302 (временная переадресация) с помощью Заголовок местоположения установлен как "Местоположение: http://twitter.com/#!/britishdev"
Да JavaScript затем вытаскивает все ваши детали на целевой странице, но независимо от того, на что вы перенаправлены.
Ответ 2
Он становится стандартом де-факто, установленным Google, чтобы обеспечить согласованность и сделать ajax-URL-сообщения ползущими.
См. http://code.google.com/web/ajaxcrawling/docs/getting-started.html
Я считаю, что они используют history.pushState
. Вы можете сделать history.back()
в консоли, и он вернет вас на страницу.
Ответ 3
Да, он перенаправляет HTTP 302.
Кстати, "!" используется для устранения случая с пустым хэшем. "http://url #" заставит браузер сдвинуться в начало.