Для первого случая вы должны использовать 401 Unauthorized :
Запрос требует аутентификации пользователя. Ответ ДОЛЖЕН включать поле заголовка WWW-Authenticate (раздел 14.47), содержащее запрос, применимый к запрашиваемому ресурсу.
Для второго случая вы должны использовать 403 Запрещено :
Сервер понял запрос, но отказывается его выполнить. Авторизация не поможет и запрос НЕ ДОЛЖЕН повторяться.
РЕДАКТИРОВАТЬ: Кажется, я не RTFQ - мой плохой.
Если вы не хотите использовать HTTP-аутентификацию, то для случая # 1 вы можете просто вернуть 200 OK :
... или 307 Временное перенаправление , указывающее на экран входа в систему - после чего клиент 307 вернется к исходному URL-адресу после проверки подлинности.
Для случая № 2 403 по-прежнему звучит как вполне разумный ответ - хотя, если подумать, он может быть предназначен для ресурсов, которые никому не должны обслуживаться - поскольку 404 предлагается в качестве действительного альтернативного ответа.
... Так что, возможно, дело № 2 также получит ответ 307 или 200.