A resposta simples é que você não pode efetuar logoff confiável da autenticação http.
A resposta longa:
Http-auth (como o restante da especificação HTTP) deve ser sem estado. Portanto, estar "logado" ou "desconectado" não é realmente um conceito que faça sentido. A melhor maneira de ver isso é perguntando, para cada solicitação HTTP (e lembre-se de que o carregamento de uma página é geralmente várias solicitações), "você tem permissão para fazer o que está solicitando?". O servidor vê cada solicitação como nova e não relacionada a nenhuma solicitação anterior.
Os navegadores optaram por lembrar as credenciais que você lhes diz no primeiro 401 e reenviá-las sem a permissão explícita do usuário em solicitações subsequentes. Esta é uma tentativa de fornecer ao usuário o modelo "logado / desconectado" que eles esperam, mas é puramente um clamor. É o navegador que simula essa persistência de estado. O servidor web desconhece completamente isso.
Portanto, "fazer logoff", no contexto de http-auth, é puramente uma simulação fornecida pelo navegador e, portanto, fora da autoridade do servidor.
Sim, existem julgamentos. Mas eles quebram o RESTfulness (se isso é de valor para você) e não são confiáveis.
Se você precisar absolutamente de um modelo de logon / logoff para a autenticação do site, a melhor opção é um cookie de rastreamento, com a persistência do estado armazenado no servidor de alguma maneira (mysql, sqlite, flatfile etc.). Isso exigirá que todas as solicitações sejam avaliadas, por exemplo, com PHP.