Código de status HTTP quando o servidor está inoperante?

2

Meu aplicativo móvel precisa enviar uma solicitação do Ajax e saber a diferença entre se o servidor estiver inativo ou se o servidor estiver ativo, mas estiver causando erros.

Eu entendo que, se houver algum erro no servidor, o servidor retornará a resposta com o código 50X.

Mas o que acontecerá se o servidor estiver inativo. Qual erro o cliente receberá?

Eu procurei, mas isso me confunde - As pessoas estão avisando que o servidor deve estar configurado para responder com o código 503 se estiver em manutenção. Mas eu não consigo entender o fato - que o servidor está inoperante, como ele pode até mesmo enviar 503 respostas de volta ??

    
por Lakshay 11.07.2017 / 13:28

1 resposta

3

Geralmente, é o balanceador de carga front-end que envia o erro 503 Serviço indisponível se o servidor da Web real estiver inativo. Se você não tiver um balanceador de carga e o servidor estiver desativado, ou se o balanceador de carga estiver inoperante, o cliente receberá um Tempo limite de conexão . Se o servidor estiver ativo, mas o Apache não estiver iniciado, o cliente receberá Conexão recusada .

No servidor desativado, a própria chamada AJAX retornará um erro.

response = url.open("http://...");
if (response == NULL) { /* handle Connection timeout / Conn refused */ }

No caso 503, sua chamada AJAX realmente realiza uma solicitação HTTP, exceto que o código de erro diz que houve um problema. Algo como:

response = url.open("http://...");
if (response.code == 503) { /* handle service unavailable */ }

Espero que ajude:)

    
por 11.07.2017 / 13:41

Tags