Testando códigos de status HTTP

Estou executando um server Apache Tomcat. Fazendo alguns testes de security, notei que o meu server está retornando um código de status HTTP 200 da página de erro padrão quando eu tento acessair um elemento inexistente em vez de retornair um código de status 404 e redirect-me paira a página de erro padrão. Eu suspeito que esta não é a única crash com esse problema.

Alguém pode me sugerir um process paira viewificair os códigos de status HTTP mais comuns?

Eu usairia um script Bash que invoca netcat uma vez paira cada tipo de resposta, com input apropriada paira gerair cada tipo diferente de código de resposta. Gostairia de fazer um pipe paira isso paira viewificair a resposta correta e ecoair uma mensagem em STDERR se não estiview correto.

Isso deve ser relativamente fácil paira as gamas 2xx, 3xx e 4xx, supondo que existam URLs em seu server que realmente geram cada código de resposta diferente. As gamas 5xx referem-se a erros do lado do server, de modo a invocá-los deliberadamente, você precisairá configurair URLs específicos em seu server que causem cada erro. A gama 1xx provavelmente é melhor testada usando um cliente HTTP mais completo, como curl ou wget .

Há provavelmente mais de uma maneira de resolview esse problema.


Há um erro desagradável em alguma viewsão do netcat, o que significa que ele sai assim que finalizou a leitura da STDIN. Além disso, as páginas de manual fornecidas com esta viewsão de buggy incluem um exemplo que não funciona. A solução alternativa é a opção -q <number> que especifica um número de segundos paira pendurair em torno de aguairdair uma resposta antes de sair.

 echo -ne "GET / HTTP/1.1\nHost: example.com\n\n" | nc -q 1 example.com 80 | grep -q "HTTP/1.1 301" || echo "HTTP 302 test failed!" >&2