What's the difference between `/ipfs/hash` and `hash`?

What’s the difference between

ipfs cat /ipfs/hash/readme

and

ipfs cat hash/readme

?

Why do we need the /ipfs/ prefix?

It’s the namespace. It tells ipfs how to interpret the rest of the path.

For example, you can also have /ipns/HashOfIpnsKey/some/path (and, in the future, you’ll be able to have /ipld/hash/path/to/ipld/object).