HTTPQUERY
한국어

451 Unavailable For Legal Reasons

사용법

451 Unavailable For Legal Reasons 상태 코드는 리소스의 존재를 확인해 주지도, 부인하지도 않습니다. 서버는 법적 요구에 따라 접근을 거부하며, 그 사실을 밝히는 것이 허용됩니다.

해당 리소스는 검열로 인해 차단되어 있습니다. 이 HTTP 상태 코드는 레이 브래드버리의 소설 『화씨 451』에 대한 오마주입니다.

451 Unavailable For Legal Reasons 응답이 적용되는 사례는 접근하는 국가의 법에 따라 달라집니다. 흔한 경우로는 저작권 침해, 사생활 침해, 도박 사이트가 있습니다. 보도 금지 명령처럼 법원 명령이 관련된 모든 상황이 이 코드에 해당합니다. 403 응답은 이 오류의 더 일반적인 형태입니다.

이 코드가 지닌 투명성 덕분에, 검열로 내려간 사이트의 수와 범주에 관한 통계를 제3자가 수집할 수 있습니다.

경우에 따라 클라이언트는 다른 방법으로 리소스에 접근합니다. VPN이나 Tor 네트워크는 출발지를 가리고, 프록시 서버는 브라우저 트래픽을 다른 국가로 우회시킵니다.

서버는 응답의 일부로 요청을 차단한 주체를 식별하는 Link 헤더를 포함합니다. 이는 차단을 명령한 주체가 아니라 콘텐츠를 차단한 책임이 있는 주체입니다. 정책을 정한 쪽에 대한 정보는 메시지 본문에 들어갑니다.

SEO 영향

Google 같은 검색 엔진은 451 Unavailable For Legal Reasons 응답 상태를 가진 URL을 색인하지 않습니다. 이전에 이 코드로 색인된 URL은 검색 결과에서 제거됩니다.

Microsoft Exchange ActiveSync에서의 사용

451 Redirect 오류 메시지는 클라이언트가 잘못된 서버에 연결했다는 뜻입니다. 사용자의 사서함이 이 서버에서 접근 불가능하거나, 더 효율적인 서버가 존재하는 경우입니다.

응답에 X-MS-Location 헤더가 포함되어 있으면 이후 요청은 그 헤더의 주소를 사용합니다. X-MS-Location 헤더가 없으면 전체 Autodiscover 과정이 실행됩니다.

예시

클라이언트가 리소스를 요청하고 서버는 451 Unavailable For Legal Reasons로 응답합니다. Link 헤더는 콘텐츠를 차단한 주체를 식별합니다.

요청

GET /tech-trial-updates HTTP/1.1
Host: example.com

응답

HTTP/1.1 451 Unavailable For Legal Reasons
Link: <https://example.com/legaldept>; rel="blocked-by"
Content-Type: text/html
Content-Length: 174

<html>
  <head>
    <title>Publication Ban</title>
  </head>
  <body>
   <p>The requested content is unavailable due
   to a government-ordered publication ban.</p>
  </body>
</html>

해결 방법

클라이언트 측에 기술적인 해결책은 없습니다. 법적 요구가 제한을 요구하기 때문에 서버가 접근을 차단하는 것입니다. 리소스 자체는 서버에 온전히 남아 있지만 제공되지 않습니다.

응답의 Link 헤더를 읽으세요. rel=“blocked-by” 관계는 차단을 명령한 법적 기관이 아니라 차단을 집행하는 주체(ISP, DNS 제공자, 호스팅 플랫폼)를 식별합니다. 요구 사항에 대한 자세한 내용은 차단 주체에 문의하세요.

응답 본문에서 법적 근거, 요구를 제기한 주체, 그리고 적용되는 법령이나 규정에 대한 설명을 확인하세요. 서버는 이 정보를 포함하도록 권장됩니다.

다른 지역에서 접근하면 지역별 법적 차단을 우회할 수 있는 경우도 있습니다. VPN이나 Tor 네트워크는 그 제한이 적용되지 않는 관할권을 거쳐 요청을 전달합니다.

서버 운영자를 위한 안내

차단을 집행하는 주체를 가리키는 rel=“blocked-by” Link 헤더를 반환하세요.

Link: <https://legal.example.re>; rel="blocked-by"

응답 본문에 법적 요구에 대한 명확한 설명, 즉 해당 법률, 요구를 제기한 기관, 영향을 받는 콘텐츠나 사람의 범주를 포함하세요.

적절한 캐싱 헤더를 설정하세요. 리소스의 법적 상태가 자주 바뀐다면 Cache-Control: no-store를 추가하세요.

Microsoft Exchange ActiveSync를 위한 안내

Exchange의 451 Redirect는 클라이언트가 잘못된 서버에 연결했다는 뜻입니다. 응답의 X-MS-Location 헤더를 확인하고 이후 요청을 지정된 주소로 보내세요. X-MS-Location 헤더가 없으면 올바른 사서함 서버를 찾기 위해 전체 Autodiscover 과정을 다시 실행하세요.

코드 참고

.NET

HttpStatusCode.UnavailableForLegalReasons

Rust

http::StatusCode::UNAVAILABLE_FOR_LEGAL_REASONS

Rails

:unavailable_for_legal_reasons

Go

http.StatusUnavailableForLegalReasons

Symfony

Response::HTTP_UNAVAILABLE_FOR_LEGAL_REASONS

Python3.5+

http.HTTPStatus.UNAVAILABLE_FOR_LEGAL_REASONS

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus
  .SC_UNAVAILABLE_FOR_LEGAL_REASONS

Angular

@angular/common/http/HttpStatusCode
  .UnavailableForLegalReasons