On the web it's called hashbang. In the Unix environment it's known as shebang.
This article gives a detailed description of the consequences arising from the usage of hashbangs in URLs, using the Lifehacker redesign as a case study.
So why use a hash-bang if it’s an artificial URL, and a URL that needs to be reformatted before it points to a proper URL that actually returns content?
Out of all the reasons, the strongest one is “Because it’s cool”. I said strongest not strong.
Danny Thorpe describes it's side effects in this article from his blog.
Another side effect of using URL fragments is that the fragments don’t appear in the browser history. As a result of the URL equivalence rules ignoring URL fragments, multiple URLs that differ only in fragment will only appear as one entry in the browser history. This makes sense if you are using URL fragments as they were originally intended – to reference specific subsections of the same base page.
While I’m not sure I agree with all of Davies rants against LifeHacker, I will agree that building an entire content system solely on the hash-bang URL pattern with no appreciable static HTML content independent of JavaScript is probably not the best use of the hash-bang URL pattern.
Ryan Grove, YUI engineer at Yahoo!, doesn't recommend using it and explains why answering this question on Quora.
No, hashbang URLs are not a recommended practice. But it's important to be absolutely clear about what this means, so read on.
and a sum up:
- "Hash" URLs and "hashbang" URLs aren't the same thing, although "hashbang" has unfortunately become the generic name for "hash URLs that trigger JavaScript-based logic".
- Hash URLs are never sent to the server, so they're useless without JavaScript if you depend on them to trigger application logic.
- Since hash URLs require JS, you're doomed to either break all existing URLs or maintain a JS URL handler forever if you ever decide to change your URL scheme.
- "Hashbang" URLs don't automatically make your page indexable by search engines. You still need to do a lot of server-side work to make that happen.
- Even if you support the full Google Ajax Crawling Scheme correctly, that only helps you with Google. You're still screwed with the other search engines.
Check this question on stackoverflow, as well.