귀하는 로그인되어 있지 않습니다. 이대로 편집하면 귀하의 IP 주소가 편집 기록에 남게 됩니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!===4 : 클라이언트 오류=== 클라이언트의 요청의 문법이 잘못되었거나, 요청을 처리할 수 없다는 것을 의미합니다. ====400 Bad Request==== 클라이언트 오류의 일반 오류코드로서 더 적합한 특정 코드가 없을 경우 사용하기에 적합합니다. ====401 Unauthorized==== <code>401 Unauthorized</code> 은 Unauthorized, 미승인이라는 이름으로 사용하고 있지만 의미상 unauthenticated, 비인증이 더 적합합니다. 클라이언트는 요청한 응답을 받기 위해서는 반드시 스스로를 인증해야 합니다. ====402 Payment Required==== 디지털 결제 시스템에 사용하기 위하여 만들어졌지만 지금 사용되고 있지는 않습니다. ====403 Forbidden==== 콘텐츠에 접근할 권한를 가지고 있지 않다는 의미입니다. <code>[[#401 Unauthorized|401 Unauthorized]]</code>와의 차이는 [[HTTP 상태 코드/401과 403 차이]] 문서를 참고하세요! ====404 Not Found==== 서버는 요청받은 리소스를 찾을 수 없습니다. 브라우저에서는 알려지지 않은 URL을 의미합니다. 이것은 API에서 종점은 적절하지만 리소스 자체는 존재하지 않음을 의미할 수도 있습니다. 서버들은 인증받지 않은 클라이언트로부터 리소스를 숨기기 위하여 이 응답을 403 대신에 전송할 수도 있습니다. ====405 Method Not Allowed==== 요청한 메소드가 지원되지 않음을 의미합니다. 예를 들어 서버에서는 특정 URI에 대해서 GET 요청만을 지원하는데 클라이언트는 POST로 요청을 보낼 경우에 적합니다. 필수적인 메소드인 <code>GET</code>과 <code>HEAD</code>는 이 에러 코드를 리턴할 수 없습니다. ====406 Not Acceptable==== 클라이언트가 서버가 지원하지 않는 리소스의 특정 표현을 요청할 때 서버가 이를 받아들이지 않음을 의미합니다. HTTP에는 콘텐츠 협상이라는 개념이 존재합니다. 이는 클라이언트가 특정 버전의 리소스를 원할 때 서버와 협상을 하는 것입니다. ====407 Proxy Authentication Required==== <code>[[#401 Unauthorized|401 Unauthorized]]</code> 과 굉장히 유사하지만 인증을 받지 못한 곳이 Proxy입니다. ====408 Request Timeout==== 클라이언트가 요청을 너무 느리게 보내 서버가 이를 종료시키고자 하는 의미입니다. 클라이언트는 인터넷 연결 불량 등 다양한 이유로 요청을 느리게 보낼 경우가 생기고 서버는 웹서핑 속도를 올리기 위해 오래된 요청에 대해 연결을 끊습니다. ====409 Conflict==== 요청 자체는 유효하지만 서버의 현재 상태와 충돌이 있을 경우를 의미합니다. 충돌은 다양한 경우가 존재하겠지만 예를 들어 폴더에 파일을 추가하고자 할 경우, 폴더가 존재하지 않을 때 해당 코드가 적합합니다. 서버는 응답 본문에 클라이언트가 충돌을 해결하기 위해 어떤 조치를 취해야 하는지 포함할 것이 권장됩니다. ====410 Gone==== 클라이언트가 요청한 리소스가 삭제되었고 다시 생기지 않을 경우에 적합합니다. <code>[[#404 Not Found|404 Not Found]]</code> 도 리소스가 삭제되어 없는 경우지만 <code>410 Gone</code> 은 좀 더 구체적으로 리소스가 의도적으로 삭제된 경우입니다. ====411 Length Required==== 서버에서 필요로 하는 <code>Content-Length</code> 헤더 필드가 정의되지 않은 요청이 들어왔기 때문에 서버가 요청을 거절합니다. ====412 Precondition Failed==== 클라이언트는 헤더에 있는 전제조건을 사용해 조건부 요청을 할 수 있으며 이 조건이 서버의 전제조건에 적절하지 않음을 의미합니다. ====413 Payload Too Large==== 클라이언트의 요청 본문이 너무 커서 서버가 받아들일 수 없을 의미합니다. 클라이언트가 대용량 파일을 업로드할려고 시도할 때 서버가 이를 거부합니다. 만일 오류의 원인이 서버에서 미리 정한 임의의 크기를 넘어서가 아니라 서버에 디스크 공간이 부족한 것이라면 <code>413 Payload Too Large</code> 보다는 <code>[[#507 Insufficient Storage|507 Insufficient Storage]]</code>가 적합합니다. ====414 URI Too Long==== 클라이언트가 요청한 URI는 서버에서 처리하지 않기로 한 길이보다 긴 것을 의미합니다. HTTP 요청의 URI 또는 경로에는 허용되는 기간에 대한 엄격한 제한이 없지만 브라우저와 검색 엔진에는 제한이 있기 때문에 서버에서는 길이 제한을 하는 것이 좋습니다. ====415 Unsupported Media Type==== 요청한 미디어 포맷은 서버에서 지원하지 않아 요청을 거부합니다. <syntaxhighlight lang='console'> POST /new-article HTTP/1.1 Content-Type: text/html HTTP/1.1 415 Unsupported Media Type Content-Type: application/json {"error": "This endpoint only supports text/markdown for new articles"} </syntaxhighlight> ====416 Requested Range Not Satisfiable==== Range 헤더 필드에 요청한 지정 범위를 만족시킬 수 없음을 의미합니다. 클라이언트는 서버에게 Range 헤더 필드를 통해서 부분 응답을 요청할 수 있습니다. 예를 들어 동영상의 일부 구간이나 로그의 일부만을 원하는 경우가 있겠죠. 이 때 서버와 범위 요청을 지원하지 않으면 <code>[[#200 OK|200 OK]]</code>와 함께 전체 리소스를 반환하고, 범위 요청을 지원한다면 <code>[[#206 Partial Content|206 Partial Content]]</code>와 함께 범위에 대한 응답을 합니다. 하지만 클라이언트의 범위가 잘못되었다면 <code>416 Requested Range Not Satisfiable</code>을 사용합니다. ====417 Expectation Failed==== 이 응답 코드는 Expect 요청 헤더 필드로 요청한 예상이 서버에서는 적당하지 않음을 의미합니다. 클라이언트가 어떤 동작을 취하기 전에 [[#100 Continue|100 Continue]] 를 기대하고 요청을 보낼 수 있습니다. <syntaxhighlight lang='console'> POST /foo/bar HTTP/1.1 Content-Type: application/gzip Content-Length: 12345678765 Expect: 100-continue </syntaxhighlight> 하지만 서버가 이 기능을 지원하지 않는다면 <code>417 Expectation Failed</code>가 적합합니다. <syntaxhighlight lang='console'> HTTP/1.1 417 Expectation Failed Content-Type: text/plain We don't support 100-continue </syntaxhighlight> ====418 I'm a teapot==== 서버는 커피를 찻 주전자에 끓이는 것을 거절한다는 뜻입니다. 너무 뜬금없지만 IETF는 매년 하나 이상의 만우절 RFC 문서를 게시하고 <code>418 I'm a teapot</code>는 그 중 하나입니다. ====421 Misdirected Request==== 클라이언트에게 잘못된 서버에 연결되었음을 의미합니다. http/1.1 이후 클라이언트는 Host 헤더를 포함해야 합니다. <syntaxhighlight lang='console'> GET /contact.html HTTP/1.1 Host: foo.example.org </syntaxhighlight> 서버의 도메인이 Host 헤더와 다르다면 클라이언트에게 잘못된 서버와 연결되어 있음을 알립니다. <syntaxhighlight lang='console'> HTTP/1.1 421 Misdirected Request Content-Type: text/html <h1>Switchboard operator error</h1> </syntaxhighlight> ====422 Unprocessable Entity(WebDAV)==== 요청은 잘 만들어졌지만, 문법 오류로 인하여 따를 수 없는 경우에 적절합니다. 다음과 같은 클라이언트 요청이 들어왔을 경우를 고려해봅시다. <syntaxhighlight lang='console'> POST /new-article HTTP/1.1 Content-Type: application/json { "title": "Hello world!"} </syntaxhighlight> <code>application/json</code> 을 지원하지 않는다면 <code>[[#415 Unsupported Media Type|415 Unsupported Media Type]]</code>가 적합하고, JSON 자체가 깨진 경우에는 <code>[[#400 Bad Request|400 Bad Request]]</code>가 적합합니다. 하지만 위 조건은 모두 충족하지만 json-schema에 의해서 유효성 검사를 통과하지 못한 경우에는 <code>422 Unprocessable Entity</code>가 적절합니다. <syntaxhighlight lang='console'> HTTP/1.1 422 Unprocessable Entity Content-Type: application/problem+json { "type" : "https://example/errors/missing-property", "status": 422, "title": "Missing property: body" } </syntaxhighlight> ====423 Locked(WebDAV)==== 리소스는 접근하는 것이 잠겨있습니다. 클라이언트는 http LOCK 메서드 를 실행하여 리소스를 잠그고 나중에 UNLOCK 메서드를 사용하여 리소스를 잠금 해제 할 수 있습니다. LOCK이 걸린 리소스에 대해 수정을 하고자하면 오류가 발생하고 <code>423 Locked</code>가 적합합니다. ====424 Failed Depeedency(WebDAV)==== WebDAV는 PROPPATCH 메소드를 사용하여 단일 요청으로 많은 항목을 업데이트 할 수 있습니다. 이 때 항목들의 업데이트는 원자성을 가져야해서 하나라도 실패한다면 전부 실패로 돌아가고 그 때의 응답으로 <code>424 Failed Depeedency</code> 을 사용합니다. ====426 Upgrade Required==== 지금의 프로토콜은 불가능하지만 프로토콜을 업그레이드를 하라는 의미입니다. 서버는 Upgrade 헤더와 필요로 하는 프로토콜을 알려주기 위해 <code>426 Upgrade Required</code>에 보냅니다. <syntaxhighlight lang='console'> HTTP/1.1 426 Upgrade Required Upgrade: HTTP/3 Connection: Upgrade To use this service, you must use HTTP version 3. </syntaxhighlight> ====428 Precondition Required==== 여러 클라이언트가 같은 자원을 작성하고 서로의 변경 내용을 덮어쓰는 것을 방지하기 위해, 혹은 클라이언트와 서드파티간의 충돌을 막기 위해 서버에서 전제조건을 필요로 한다는 의미입니다. 다음과 같은 전제조건들이 있습니다. <code>If-Match</code>, <code>If-None-Match</code>, <code>If-Modified-Since</code>, <code>If-Unmodified-Since</code> ====429 Too Many Requests==== 클라이언트가 제한된 요청의 양을 넘을 경우, 클라이언트에게 이 사실을 알립니다. ====431 Request Header Fields Too Large==== 요청한 헤더 필드가 너무 크기 때문에 서버는 요청을 처리하지 않을 것을 의미합니다. 요청은 크기를 줄인 다음에 다시 전송해야하며 보통 쿠키에 원인이 있습니다. ====451 Unavailable For Legal Reasons==== 서버가 법적인 이유로 컨텐츠 제공을 거부하는 것을 의미합니다. 편집 요약 가온 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 가온 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요! 취소 편집 도움말 (새 창에서 열림)