400 클래스 오류 문제 해결
4xx 클래스 오류 코드 응답은 클라이언트 측에 문제가 있을 때 발생하며 네트워크 문제일 가능성이 있습니다.
- 4xx 코드는 모든 요청 메소드에 대한 응답으로 사용할 수 있습니다.
- 오리진 서버에는 HEAD 요청을 제외하고 사용자 에이전트가 표시해야 하는 설명이 포함되어야 합니다.
- 사이트 소유자가 차단 동작이 있는 규칙을 만들고 사용자 지정 응답 코드를 구성한 경우 사용자 지정 규칙은 HTML 페이지에서 400-499 범위의 모든 응답 코드를 반환할 수 있습니다.
오류 400: 잘못된 요청
클라이언트가 서버에 올바른 요청을 보내지 않았습니다. 잘못된 요청 구문, 잘못된 요청, 메시지 프레이밍 또는 기만적인 요청 라우팅과 같은 클라이언트 오류입니다. 예를 들어, 요청에 올바르게 URL 로 인코딩(또는 퍼센트 인코딩)되지 않은 특수 문자가 포함되어 있는 경우, HTTP 400
오류가 반환됩니다.
CIS API를 사용할 때 " HTTP " 오류가 발생한다면, API 호출에 올바른 구문, 올바른 매개변수, 올바른 본문을 사용하고 있는지 확인하십시오.
오류 401: 권한 없음
요청이 적절한 인증 자격 증명 없이 전송되었습니다.
오류 403: 금지됨
CIS 브랜딩이 없는 403 오류가 표시되는 경우, 이는 항상 CIS 아닌 원본 웹 서버에서 직접 반환되며 일반적으로 서버의 권한 규칙과 관련이 있습니다. 이 오류의 가장 큰 원인은 다음과 같습니다:
- 원본 웹 서버에서 설정한 권한 규칙(예: Apache.htaccess)
- Mod_security 규칙
- IP 거부 규칙. CIS IP 범위가 차단되지 않았는지 확인하세요.
요청이 기본 WAF 관리 규칙 또는 해당 특정 영역에 대해 활성화된 WAF 관리 규칙을 위반한 경우 CIS 403 응답을 전송합니다.
해결책 응답 본문에 CIS 브랜딩이 포함된 403 응답이 표시되는 경우, 보안 기능과 함께 반환되는 HTTP 응답 코드입니다
- WAF 사용자 지정 또는 관리 규칙에 도전 또는 차단 작업 포함
- 기본적으로 중간으로 설정된 보안 수준
- 대부분의 1xxx CIS 오류 코드
- 브라우저 무결성 검사
오류 404: 찾을 수 없음
원본 서버가 요청된 리소스를 찾을 수 없거나 찾을 의향이 없습니다. 이는 일반적으로 호스트 서버가 리소스를 찾지 못했음을 의미합니다. 이 오류의 보다 영구적인 버전을 제공하려면 ' 410
오류 코드를 사용하세요.
이러한 오류는 일반적으로 다른 페이지에서 링크가 끊어진 경우, 이전에 존재했던 페이지가 이동되거나 제거된 경우, 검색 엔진이 사이트를 색인할 때 오류가 발생하는 경우, 사이트의 URL 를 잘못 입력할 때 발생합니다. 일반적인 사이트의 경우 이러한 오류는 전체 페이지 뷰의 약 3%를 차지하지만 기존 분석 플랫폼에서는 추적되지 않는 경우가 많습니다.
웹사이트 소유자는 일반적으로 이 오류가 발생하면 사용자 지정 페이지를 구현하여 제공합니다.
[해결] 방법{: tag-green} CIS 고객 웹사이트에 대해 ' 404
' 오류를 생성하지 않습니다. { CIS 원본 서버의 요청만 프록시합니다. 사이트에 ' 404
'이 표시되면 호스팅 제공업체에 문의하여 도움을 요청하세요.
오류 405: 허용되지 않는 방법
원본 서버가 요청된 리소스를 알고 있지만 요청 방법이 지원되지 않습니다.
[해결] 방법{: tag-green} 원본 서버는 해당 리소스에 대해 지원되는 대상 목록이 포함된 허용 헤더도 제공해야 합니다.
오류 406: 허용되지 않음
서버가 요청의 콘텐츠 협상 헤더에 정의된 허용 가능한 값 목록과 일치하는 응답을 생성할 수 없으며 서버가 기본 표현을 제공하지 않으려는 경우입니다.
[해결] 방법{: tag-green} 이 오류를 생성하는 대신 선호도가 낮은 방법을 사용자 에이전트에게 제공할 수 있습니다.
오류 407: 인증 필요
클라이언트가 요청과 함께 필요한 인증을 보내지 않았습니다.
[해결] 방법{: tag-green} 필요한 인증으로 요청을 다시 시도합니다.
오류 408: 요청 시간 초과
원본 서버가 적절한 시간 내에 전체 요청을 수신하지 못했습니다. 이 오류는 서버가 연결을 기다리지 않고 계속하기를 원하지 않는다는 것을 의미합니다.
해결 방법 서버는 일반적으로 "닫기" 연결 옵션을 사용하기 때문에 이 오류는 일반적이지 않습니다.
오류 409: 충돌
리소스의 현재 상태와 충돌하여 요청이 완료되지 않았습니다. 이 오류는 일반적으로 여러 클라이언트가 동일한 리소스를 편집하려고 시도하는 ' PUT
요청에서 발생합니다.
[해결] 방법{: tag-green} 서버는 클라이언트가 충돌의 원인을 인식할 수 있는 충분한 정보를 포함하는 페이로드를 생성해야 합니다. 클라이언트는 요청을 다시 시도할 수 있으며 다시 시도해야 합니다.
CIS ' Error 1001: DNS Resolution Error
'에 대해 ' 409
' 응답을 생성하여 제공합니다.
오류 410: 사라짐
요청된 리소스가 원본에서 영구적으로 누락되었습니다.
[해결] 방법{: tag-green} 서버가 리소스를 참조하는 링크를 제거해야 한다고 제안합니다. 서버는 ' 404
응답 대신 이 상태 코드를 사용할 자격이 없거나 특정 기간 동안 이 응답을 사용할 필요가 없습니다.
오류 411: 필요한 길이
클라이언트가 헤더에 요청 본문의 Content-Length를 정의하지 않았으며 이 매개 변수는 리소스를 가져오는 데 필요합니다.
[해결] 방법{: tag-green} 클라이언트는 헤더 필드를 추가한 후 요청을 다시 보낼 수 있습니다.
오류 412: 전제 조건 실패
리소스가 클라이언트가 지정한 조건을 충족하지 못했기 때문에 서버가 요청을 거부합니다.
버전 관리의 예로, 클라이언트가 기존 리소스를 수정하면서 클라이언트가 리소스를 다운로드하고 편집을 시작한 날짜와 일치하도록 ' If-Unmodified-Since
헤더를 설정하는 경우를 들 수 있습니다. 이 날짜 이후에 리소스를 편집한 경우(다른 클라이언트가 편집 내용을 업로드하기 전일 가능성이 높음) 마지막 편집 날짜가 클라이언트가 ' If-Unmodified-Since
'에 설정한
날짜 이후에 오기 때문에 이 응답이 생성됩니다.
해상도 CIS 이 응답을 제공합니다.
오류 413: 페이로드가 너무 큽니다
클라이언트에서 보낸 페이로드가 서버가 허용하는 것보다 크기 때문에 서버에서 요청 처리를 거부하는 경우입니다. 서버가 연결을 닫을 수 있습니다.
이러한 거부가 일시적으로만 발생하는 경우 서버는 ' Retry-After
헤더를 전송하여 클라이언트가 요청을 다시 시도해야 하는 시점을 지정해야 합니다.
CIS 업로드 제한은 요금제에 따라 다릅니다. 이 한도를 초과하면 API 호출에 ' 413 Request Entity Too Large
' 오류가 발생합니다.
표준 | 엔터프라이즈 | |
---|---|---|
사용 가능 | 예 | 예 |
최대 업로드 MB | 500 |
[해결] 방법{: tag-green} 대용량 업로드가 필요한 경우 요청을 더 작은 덩어리로 나누거나 DNS 레코드를 DNS 전용으로 변경하거나 요금제를 업그레이드하세요.
오류 414: URI가 너무 깁니다
URI가 너무 길어서 처리할 수 없다는 서버의 거부입니다. 예를 들어 클라이언트가 POST 뒤에 비정상적으로 긴 URI를 사용하여 ' GET
요청을 시도하는 경우 보안 위험으로 해석되어 ' 414
' 오류가 발생할 수 있습니다.
해상도 CIS 32KB 긴 URI에 대해 이 응답을 생성합니다.
오류 415: 지원되지 않는 미디어 유형
서버에서 현재 페이로드의 형식을 처리하는 것을 거부합니다. 이 문제를 식별하고 해결하는 한 가지 방법은 클라이언트의 요청에 전송된 ' Content-Type
' 또는 ' Content-Encoding
' 헤더를 살펴보는 것입니다.
오류 416: 범위가 만족스럽지 않습니다
416
의 오류 응답 코드는 서버가 요청된 범위를 제공할 수 없음을 나타냅니다. 예를 들어, 다음과 같습니다.
HTTP/1.1 416 Range Not Satisfiable
Content-Range: bytes */12777
[해결] 방법{: tag-green} ' 416
' 오류가 발생하는 가장 일반적인 이유는 파일에 해당 범위가 포함되지 않았기 때문입니다. 브라우저는 일반적으로 전체 파일을 다시 요청하거나 작업을 중단합니다.
오류 417: 예상 실패
서버가 클라이언트 요청의 ' Expect
헤더에 지정된 요구 사항을 충족하지 못했습니다.
오류 429: 요청이 너무 많습니다
클라이언트가 서버에 따라 지정된 시간 내에 너무 많은 요청을 보냈습니다(흔히 "속도 제한"이라고 함). 서버는 요청자가 특정 시간 후에 요청을 다시 시도할 수 있도록 정보를 제공하여 응답할 수 있습니다.
CIS API의 글로벌 속도 제한은 사용자당 5분당 1200건의 요청이며, 대시보드, API 키 또는 API 토큰을 통한 요청 여부에 관계없이 누적 적용됩니다. 이 한도를 초과하면 다음 5분 동안 모든 API 호출이 차단되어 ' HTTP 429
' 응답을 받습니다.
일부 특정 API 호출은 자체적인 제한이 있으며, 캐시 삭제 API(Cache Purge APIs), 캐시 삭제 규칙 API( GraphQL s), 규칙 집합 API(rulesets APIs)와 같이 별도로 문서화되어 있습니다.
[해결] 방법{: tag-green} 기업 고객은 지원팀에 문의하여 한도를 높일 수 있습니다.
{{{site.data.keyword.cis_short_notm}} 요청이 속도 제한 중일 때 이 상태 코드를 생성하여 전송합니다. 사이트 방문자에게 이러한 오류 코드가 표시되는 경우 속도 제한 분석에서 이를 확인할 수 있습니다.
오류 451: 법적 이유로 사용할 수 없습니다
법적 조치로 인해 서버에서 리소스를 제공할 수 없습니다.
일반적으로 이 응답 코드의 영향을 받는 것은 원본 서버가 아니라 검색 엔진과 ISP입니다. 답변 본문에는 법적 요구 사항에 대한 자세한 설명이 포함되어야 합니다.
오류 499: 클라이언트 닫기 요청
오류 ' 499
'은 서버가 요청을 처리하는 동안 클라이언트에 의해 연결이 종료되어 서버가 상태 코드를 다시 보낼 수 없는 경우를 나타내는 nginx 전용 응답 코드입니다.
이 오류는 CIS 로그 및 엔터프라이즈 고객의 상태 코드 분석에 표시됩니다.
CIS 의 파트너인 Cloudflare는 nginx를 기반으로 구축되었기 때문에, Cloudflare 로그와 분석에 499개의 HTTP 코드가 연결에 대한 것으로 나타나는데, 이는 CIS 가 요청 처리를 완료하기 전에 종료된 것입니다. 클라이언트가 연결을 닫을 때 로그에 이러한 내용이 표시되는 것은 예상되는 동작입니다.
더 많은 컨텍스트를 제공하려면 상위 프로토콜이 '대화'를 시작하기 전에 CIS 웹사이트의 원본 서버 간에 TCP 연결이 설정되어야 합니다. 연결을 설정하기 위해 TCP는 3자 핸드셰이크를 사용합니다:
- SYN: CIS 3개의 SYN 패킷을 원본 서버로 전송합니다.
- SYN+ACK: 이에 대한 응답으로 원본 서버가 SYN+ACK으로 응답합니다.
- ACK: 마지막으로 CIS 원본 서버로 ACK를 다시 보냅니다.
이 시점에서 CIS 원본 서버가 모두 연결 승인을 받았으며 통신이 설정됩니다. 그러나 원본 서버가 15초 이내에 ' CIS '에 SYN+ACK을 다시 보내지 않으면 ' CIS '가 한 번 더 재시도합니다.
클라이언트 측의 시간 초과 값에 따라 고유한 상태 코드가 생성된 세 가지 시나리오가 표시될 수 있습니다.
- 클라이언트의 시간 초과가 더 짧으면(30초 미만) 연결을 포기하고 CIS '
499
' 오류를 기록합니다. - 클라이언트의 타임아웃이 더 길면(30초 이상), TCP 연결이 설정된 후에도 HTTP 트랜잭션이 계속됩니다. 이 경우, CIS 는
HTTP 200
의 정상적인 상태 코드를 반환합니다. - 클라이언트의 타임아웃이 더 길고 ' CIS 원본 서버와 TCP 핸드셰이크를 설정할 수 없는 경우, ' CIS '
HTTP 522
'을 반환합니다.