유지 관리를 위해 사이트가 다운되었을 때 보낼 올바른 HTTP 상태 코드는 무엇입니까?


87

Google (및 기타)에게 사라지고 나중에 다시 색인을 생성 하도록 알리는 HTTP 상태 코드가 있습니까?

기본적으로 사이트가 유지 보수를 위해 다운되었음을 클라이언트에게 의미 론적으로 알려주는 것입니까?

내가 고려한 것들은

304 => Not modified
307 => Temporary redirect
410 => Gone
503 => Service Unavailable

나는 마지막쪽에 기대고 있지만, 어느 쪽이 적절한 선택인지 궁금했습니다 .

답변:


113

HTTP 503-사용할 수없는 서비스 가 가장 적합합니다.

웹 사이트를 실행하는 웹 서버는 현재 서버의 일시적인 과부하 또는 유지 관리로 인해 HTTP 요청을 처리 할 수 ​​없습니다. 의미는 이것이 약간의 지연 후에 완화 될 일시적인 조건이라는 것입니다.

Google 웹 마스터 센터 포럼의이 게시물도 관련이 있습니다.

예-503은 "We 're closed"에 대한 올바른 서버 응답입니다. "우리는 닫혔습니다"라는 일반 HTML 페이지로 대체하고 200을 제공하면 Google에서 색인을 생성 할 가능성이 큽니다.

Googlebot에 503을 제공하면 제공 한 내용을 인덱싱하지 않고 사라졌다가 나중에 다시 돌아옵니다.


최신 정보:

PHP 구현에 관해서는 다음 기사를 확인하는 것이 좋습니다.

또한 retry-after다른 요청을 재 시도해야하는 시간 (초) 후에 지정할 수있는 헤더를 확인하십시오.


더 이상 http2에서 작동하지 않는 것 같습니다. 유지 관리 페이지와 함께 503을 보내면 Chrome에 ERR_HTTP2_PROTOCOL_ERROR가 표시됩니다. 200을 보내면 모든 것이
정상입니다


3

5xx 그룹은 일반적으로 서버 오류를 의미하기 때문에 503이 가장 적절하다고 생각합니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.