506

Variant Also Negotiates

공식
엔드포인트가 스스로 협상

506 상태 코드에 대한 일반적인 설명

HTTP 상태 코드 506 Variant Also Negotiates은 서버가 소위 투명 콘텐츠 협상을 사용하는 구성으로 배포될 때 발생하는 서버 내의 특정 문제를 나타내는 지표입니다. 이러한 유형의 콘텐츠 협상은 요청하는 클라이언트의 요구 사항(예: 다른 언어, 파일 형식 또는 인코딩)에 따라 제공할 수 있는 다양한 버전의 리소스를 관리하는 데 사용됩니다.

본질적으로 506 Variant Also Negotiates 상태 코드는 서버에 잘못된 구성이 있어 무한한 협상 루프를 초래한다는 것을 의미합니다. 서버가 클라이언트의 기본 설정에 따라 요청된 리소스의 특정 버전을 선택하는 대신 선택 자체가 또 다른 협상을 의미합니다. 그 결과 서버는 하나의 변형이 다른 변형을 참조하고, 이 변형이 다시 다른 변형을 참조하는 등의 참조 사이클에 걸려 어떤 변형도 제공되지 않습니다.

간단한 예: 클라이언트가 특정 언어로 된 웹 페이지를 원합니다. 서버는 웹사이트의 여러 언어 버전을 보유하고 있으며 가장 적합한 버전을 선택하려고 시도합니다. 그러나 서버의 구성이 올바르지 않으면 가장 적합한 버전을 선택해야 하는 프로세스가 최종 선택을 하는 대신 다른 협상을 참조할 수 있습니다. 506 Variant Also Negotiates 상태 코드는 이러한 내부 충돌 또는 잘못된 구성으로 인해 서버가 적절한 버전의 리소스를 제공할 수 없음을 클라이언트에 알립니다.

실제로 이 상태 코드는 매우 구체적인 서버 구성 및 오류 조건을 가정하기 때문에 거의 발생하지 않습니다. 문제를 해결하려면 무한 루프에 들어가지 않고 콘텐츠 협상이 올바르게 수행될 수 있도록 서버 구성을 검토하고 수정해야 합니다.

HTTP 상태 코드 506의 사양

506 Variant Also Negotiates 상태 코드는 서버에 내부 구성 오류가 있음을 나타냅니다. 즉, 선택한 변형 리소스가 투명한 콘텐츠 협상 자체에 참여하도록 구성되었으므로 협상 프로세스의 적절한 종료 지점이 아닙니다.

출처 / 인용 출처: 506 Variant Also Negotiates HTTP 상태 코드는 RFC2295 섹션 RFC2295에 명시되어 있습니다.

PHP로 506 상태 코드를 던지는 방법은 무엇인가요?

웹 페이지에 HTTP 상태 코드 506를 던지려면 PHP 함수 http_response_code를 사용할 수 있습니다. 구문은 다음과 같습니다: http_response_code(506) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

506 HTTP 상태 코드 테스트

클라이언트 측에서 HTTP 상태 코드(이 경우 506 Variant Also Negotiates) 및 기타 정보를 표시하려면 F12를 사용하여 개발 콘솔을 열어야 합니다. 그런 다음 "네트워크" 탭으로 이동합니다. 이제 페이지를 열면 네트워크 탭에 웹사이트(예: index.php)가 표시됩니다. 이를 선택한 다음 허더 섹션을 선택해야 합니다. 그러면 사용자에게 다음과 같은 결과가 표시됩니다:

상태 코드 506 Variant Also Negotiates
개요
URL: https://http-statuscode.com/errorCodeExample.php?code=506
상태: 506 Variant Also Negotiates
그: Network
IP 주소: XX.XX.XX.XX
상태 코드 506 Variant Also Negotiates

상태 코드 506에 대한 오류 페이지를 직접 만드는 방법

자체 506 Variant Also Negotiates 오류 페이지를 만드는 것은 "Apache" 및 "NGINX" 웹 서버 모두에서 비교적 쉽습니다.

Apache Webserver

웹 서버 "아파치"는 인터넷에서 가장 일반적인 웹 서버 중 하나입니다. "Apache"에서 506 Variant Also Negotiates 오류 페이지를 직접 생성하려면 다음 파일에서 다음과 같이 변경해야 합니다.

File: .htaccess
ErrorDocument 506 /errors/506.html

NGINX Webserver

웹 서버 "Apache"와 마찬가지로 "NGINX"도 인터넷에서 널리 사용됩니다. "NGINX"에서 506 Variant Also Negotiates 오류 페이지를 직접 생성하려면 다음 파일에서 다음과 같이 변경해야 합니다.

File: sites-enabled/default
error_page 506 /506.html;
location = /506.html {
    root /usr/share/nginx/html;
    internal;
}

506 상태 코드의 브라우저 호환성

Chrome no data
Edge no data
Firefox no data
Opera no data
Safari no data
Chrome Android no data
Firefox for Android no data
Opera Android no data
Safari on iOS no data
Internet no data
WebView Android no data

프로그래밍 언어의 상수

http.StatusVariantAlsoNegotiates
Response::HTTP_VARIANT_ALSO_NEGOTIATES_EXPERIMENTAL
:variant_also_negotiates

HTTP 상태 코드 506에 대한 재미있는 밈

작성자: Tony Brüser
작성자: Tony Brüser

토니 브루서는 HTTP 상태 코드에 관심이 많은 열정적인 웹 개발자입니다.

LinkedInGitHub