programing

페이스북은 브라우저 주소창에 있는 페이지의 소스 URL을 어떻게 고쳐 쓰나요?

elseif 2023. 2. 23. 22:05

페이스북은 브라우저 주소창에 있는 페이지의 소스 URL을 어떻게 고쳐 쓰나요?

http://www.facebook.com/facebook?v=wall,에 접속하여 [Info]탭을 클릭합니다.콘텐츠가 로드되고 주소 표시줄이 http://www.facebook.com/facebook?v=info이 되지만 웹 페이지가 새로고침되지 않았습니다.

처음에는 Ajax라고 생각합니다만, 어떻게 새로고침 없이 주소 표시줄을 변경할 수 있을까요?JS를 사용하여 앵커(#wall)를 변경할 수 있지만 쿼리 문자열(?v=wall)은 어떻게 변경할 수 있습니까?

HTML5의 새로운 기능을 사용하여 페이지가 원래 가져온 URL과 다른 URL에 있는 것처럼 위장할 수 있습니다.

이것은 현시점에서는 WebKit에 의해서만 서포트되고 있는 것 같습니다.그 때문에, 다른 멤버는,?v=wall#!/facebook?v=info대신?v=info.

이 기능을 사용하면 동적으로 로드된 페이지를 JS 지원 사용자 에이전트와 비 JS 지원 사용자 에이전트 간에 적절히 북마크, 교환할 수 있습니다.왜냐하면 JS 사용자로서 누군가가 링크되어 있는 경우?v=wall#!/facebook?v=info브라우저가 JS와 XMLHttpRequest를 지원하지 않아 페이지가 작동하지 않습니다.#!는 AJAX 이외의 버전을 다운로드하기 위한 검색 엔진의 힌트로도 사용됩니다.

@snoob - 대신 @bobince의 답변을 받아주시면 감사하겠습니다.그는 먼저 구체적인 내용에 대해 올바른 방향으로 나아가고 있습니다.승인되지 않을 때까지 삭제/삭제할 수 없기 때문에 가능한 한 올바르게 갱신하겠습니다.


현재 표시되는 것은 WebKit(Chrome, Safari 등)에 고유한 것으로, @bobince가 다른 브라우저에서 지적한 바와 같이 실제 URL은 바에 표시됩니다.

http://www.facebook.com/facebook?v=wall#!/facebook?v=info\

Chrome의 특징:

http://www.facebook.com/facebook?v=info

AJAX 콘텐츠를 Google 검색 엔진으로 크롤링할 수 있도록 으로써 콘텐츠의 출처를 브라우저에서도 인식할 수 있도록 하는 이 타당합니다.

세부 사항 수정:Webkit 브라우저는 HTML 5 이력 기능을 사용하여 facebook이 원하는 단축 URL을 표시하고 있습니다.여기서 코드를 보실있습니다.HistoryManager이 경우는, 특히 유저가 액세스 한 URL 를 사용 가능한 직접 URL 로 치환하기 위해서 사용합니다.

주의:이 답변은 나중에 유효하지 않을 수 있습니다(WebKit 고유 비트). 다른 브라우저가 HTML5 기능을 점점 더 많이 지원하므로 이 답변은 곧 구식이 될 수 있습니다.

MooTools 개발자에게는 해시에 대한 폴백과 함께 네이티브 이력 API를 지원하는 cpojer의 mootools-history 플러그인을 체크할 것을 권장합니다.

페이스북이 없어서 확인할 수 없어요.그러나 95%는 이것이 전체 페이지 요청이어야 한다고 확신합니다. 위치 표시줄은 피싱 웹 사이트에 매우 유용한 기능이기 때문에 쓸 수 없습니다(http://fakeonlinebank.com에서는 http://yourtrustybank로 고쳐 씁니다).브라우저가 그 부분만 로드하는 것처럼 보일 정도로 속도가 빠를 수 있습니다.

하지만 누군가 이 문제에 대해 저를 바로잡아 줄지 궁금해요.그것은 그들이 당신이 듣고 싶어하는 답을 가지고 있다는 것을 의미하기 때문입니다;)

언급URL : https://stackoverflow.com/questions/3849758/how-does-facebook-rewrite-the-source-url-of-a-page-in-the-browser-address-bar