403 admits the thing exists and refuses to give it to you. 404 says there is nothing here at all. The twist: a server is explicitly allowed to answer 404 instead of 403 precisely to avoid revealing that a protected page exists.
Side by side
Aspect
404 Not Found
403 Forbidden
Does it exist?
Not as far as you know
Yes
Would signing in help?
No
Sometimes
Reveals existence?
No
Yes
Can stand in for the other?
Yes — to hide a page
No
What each one means
404
404 is the HTTP status code a web server returns when it can be reached perfectly well but has nothing at the address you asked for. The page isn't there — and the code deliberately makes no promise about whether it ever was, or ever will be.