> If something didn't exist at all, why would I send a 451?
You just don't acknowledge the existence.
> So... everybody can ignore 451?
The status code is optional in the sense that you don't have to use it if a resource is unavailable for legal reasons. You can use it if you want to inform the user what exactly is going on.
>You can use it if you want to inform the user what exactly is going on.
That's exactly the purpose.
>The 4xx class of status code is intended for cases in which the client seems to have erred. Except when responding to a HEAD request, the server SHOULD include an entity containing an explanation of the error situation, and whether it is a temporary or permanent condition. These status codes are applicable to any request method. User agents SHOULD display any included entity to the user.
You just don't acknowledge the existence.
> So... everybody can ignore 451?
The status code is optional in the sense that you don't have to use it if a resource is unavailable for legal reasons. You can use it if you want to inform the user what exactly is going on.