2011-10-21 1 views
2

AJAX 콘텐츠를 Google 용으로 크롤링 할 수있는 것 외에도 shebangs/hashbangs에 다른 용도가 있습니까? 아니면 그거야?shebang/hashbang이란 무엇입니까?

+0

[Facebook의 hashbang (#!) 및 새로운 Twitter URL은 무엇인가요?] (http://stackoverflow.com/questions/3009380/whats-the-hashbang-in-facebook-and-new- twitter-urls-for) –

답변

11

Ajax가 개발되기 오래 전부터 URL에 사용 된 해시가 존재했습니다.

원래는 페이지 내의 하위 섹션에 대한 참조로 사용되었습니다. 이 컨텍스트에서는 예를 들어 페이지 상단에 목차가 있고 각 페이지는 동일한 페이지의 섹션에 대한 해시 링크가됩니다. 이 링크를 클릭하면 페이지가 관련 마커로 스크롤 (또는 위로)됩니다.

브라우저가 해시가 포함 된 URL을 받으면 해시 전의 주소 부분 만 페이지 요청으로 서버에 전송됩니다. 해시 부분은 브라우저가 자체적으로 처리하고 페이지를 관련 위치로 스크롤 할 수 있도록 유지됩니다.

이것은 해시 구문의 원래 의도 한 내용이므로이 질문에 대한 직접적인 대답입니다. 하지만 조금씩 계속해서 여기에서 우리가 지금 어디까지 왔는지 설명해 드리겠습니다 ...

Ajax가 발명되었을 때 사람들은 사이트에 단일 페이지를 가질 수있는 방법을 찾고 싶어했지만 링크를 클릭하면 외부에서 클릭하여 관련 콘텐츠로 바로 이동할 수 있습니다.

개발자는 자바 스크립트 내에서 URL 해시 값을 읽을 수 있기 때문에 기존 해시 구문이이를 처리 할 수 ​​있다는 것을 빨리 깨달았습니다. 당신이해야 할 일은 해시를 볼 때 스크롤을 멈추는 것뿐입니다 (충분히 쉽습니다). 브라우저에서 실제로 무시되는 URL이 약간 있지만, 자바 스크립트로 읽고 쓸 수 있습니다. ; Ajax와 함께 사용하기에 적합합니다. Google이 검색에서 URL의 해시 부분을 포함한다는 사실은 시작부터 운 좋은 보너스 였지만 기술이 널리 보급되면서 매우 중요 해졌습니다.

사람들은이 해시 구문을 "shebang"또는 "hashbang"이라고하지만 실제로는 잘못되었습니다. 그것은 단지 관련된 해시 일뿐입니다. "hashbang"이라는 단어의 '강타'부분은 느낌표 ('강타'는 인쇄 업계 용어입니다)를 나타냅니다. 일부 URL은 실제로 해시 뒤에 느낌표를 추가 할 수 있지만 해시 만 브라우저와 관련이 있습니다. 그 문자열은 전적으로 사이트의 저자들에게 달려있다. 그들이 선택한대로 느낌표를 포함 할 수도 있고 그렇지 않을 수도 있지만 브라우저가 아무 것도하지 않을 수도 있습니다. 원한다면 해시뱅 또는 세번 (shebang)이라고 계속 부르지 만 해시 만 의미가 있음을 이해하십시오.

"shebang"또는 "hashbang"이라는 실제 용어는 훨씬 더 많이 돌아가며 #! 구문을 참조하지만 URL 컨텍스트는 참조하지 않습니다.

이 기호가 유닉스 스크립트 파일의 시작 부분에 사용 된이 단어의 원래 의미되었다, 스크립트에 기록 된 어떤 프로그래밍 언어 스크립트 프로세서를 알 수 있습니다.

을 그래서이 참에 대한 답변입니다 귀하의 질문, 당신이 말한 방식,하지만 당신이 의미 한 바가 아닐 수도 있습니다. URL과 전혀 관련이 없기 때문입니다.

+1

와우, 훌륭한 설명, 진지하게. 감사! – federicot

관련 문제