-
HTTP 상태코드 정리Web Vulnerability 2020. 2. 28. 00:10
HTTP 상태코드 정리
1×× Informational
100 Continue (계속)
요청의 일부를 받았으며, 나머지 요청을 기다리고 있음을 나타냄
101 Switching Protocols (프로토콜 전환)
프로토콜 전환이 일어났을 시 발생함 ex) HTTP → HTTPS 전환 시
102 Processing (처리)
서버가 요청을 받았으나, 아직 완료하지 않았음을 알리기 위한 임시 응답임
(서버가 요청이 완료되기까지 상당한 시간이 걸릴것으로 예상 시 전송됨)
103 Early Hints (초기 힌트)
힌트를 나타내는 상태코드로 클라이언트가 준비를 하는데 도움이 되는 힌트를 전달하는데 사용됨
2×× Success
200 OK (성공) 1×× Informational
서버가 요청을 정상적으로 처리했을 경우 사용됨201 Created (작성됨)
요청이 이행되어 새로운 리소스가 생성되는 경우 사용됨(POST 또는 PUT)
202 Accepted (허용됨)
요청이 처리되도록 승인되었지만 처리가 완료되지 않은 경우 사용됨
203 Non-authoritative Information (신뢰할 수 없는 정보)
서버가 요청을 성공적으로 처리했지만 다른 소스에서 수신된 정보를 제공하는 경우 사용됨
(HTTP/1.0에 없음, HTTP/1.1 이후 사용 가능)
204 No Content (콘텐츠 없음)
서버가 요청을 성공적으로 처리했지만 응답할 콘텐츠가 없는 경우 사용됨
205 Reset Content (콘텐츠 재설정)
서버가 요청을 성공적으로 처리했지만 콘텐츠를 표시하지 않는 경우 사용됨
204 상태코드와 달리 이 응답은 요청자가 문서 보기를 재설정할 것을 요구함
ex) 새 입력을 위한 문서 양식 새로고침 시
206 Partial Content (일부 콘텐츠)
클라이언트가 보낸 범위 헤더로 인해 서버가 리소스의 일부만 처리 시 사용됨
207 Multi-Status (다중 상태)
다중 상태 코드가 적절할 수 있는 상황에서 복수의 리소스에 대한 정보 전달 시 사용됨
208 Already Reported (이미 보고됨)
동일한 컬렉션에 여러 바인딩의 내부 구성원을 반복적으로 열거하지 않도록 DAV:propstat 응답 요소 내에서 208 상태 코드를 사용할 수 있음
226 IM Used
서버가 자원에 대한 GET 요청을 이행했으며, 응답은 현재 인스턴스에 적용된 하나 이상의 인스턴스 관리 결과를 나타낼때 사용됨
3×× Redirection
300 Multiple Choices (여러 선택항목)
서버가 이용자 에이전트에 따라 수행할 작업을 선택하거나, 요청자가 선택할 수 있는 작업 목록을 제공 시 사용됨
301 Moved Permanently (영구 이동) 요청한 페이지가 새 위치로 영구적 이동 시 사용됨
(GET 또는 HEAD 요청에 대한 응답으로 이 응답이 사용되면, 요청자는 자동으로 새 위치로 이동됨)302 Found (임시 이동)
현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만, 요청자는 향 후 요청 시 원래 위치를 계속 사용해야 할 시 사용됨 (임시 이전의 경우 사용 되며, POST가 GET으로 바뀜)
303 See Other (기타 위치 보기)
GET 요청에 대하여 전송할 수 있는 대상 리소스가 없음을 나타내며, 수신인에게 유용한 표현을 제공할수 있도록 대상 리소스를 설명하는 리소스를 알려줄 때 사용됨
(HEAD 요청 이외의 모든 요청을 다른 위치로 자동으로 전달됨)304 Not Modified (수정되지 않음)
마지막 요청 이후 요청한 페이지가 수정되지 않았을 시 사용됨
305 Use Proxy (프록시 사용)
요청자는 프록시를 사용하여 요청한 페이지만 Access 할 수 있음을 나타낼 때 사용됨
307 Temporary Redirect (임시 리다이렉션)
현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만, 요청자는 향 후 요청 시 원래 위치를 계속 사용해야 할 시 사용됨
(POST에서 GET으로 변경할 수 없다는 점을 제외하면 302 상태코드와 유사함)308 Permanent Redirect (영구 리다이렉션)
요청한 페이지가 새 위치로 영구적 이동 시 사용됨
(POST에서 GET으로 변경할 수 없다는 점을 제외하면 301 상태코드와 유사함)4×× Client Error
400 Bad Request (잘못된 요청)
클라이언트 오류(예: 잘못된 형식의 요청 구문, 잘못된 요청 메시지 프레임
등)로 인해 요청을 처리할 수 없을 시 사용됨401 Unauthorized (권한 없음)
대상 리소스에 대하여 유효한 인증 자격 증명이 없을 시 사용됨
402 Payment Required (결제 필요)
나중에 사용할 수 있도록 예약됨
(디지털 현금이나 소액결제 계획의 일부로 사용 예정이었으나, 현재 일반적으로 사용하지 않음)403 Forbidden (금지됨)
작업을 수행할 수 있는 권한이 없는 이용자 또는 리소스를 어떤 이유로 사용할 수 없는 경우 사용됨
404 Not Found (찾을 수 없음)
서버가 요청한 페이지를 찾을 수 없을 시 사용됨
(예: 존재하지 않는 페이지 등)405 Method Not Allowed (허용되지 않은 방법)
요청에 지정된 방법을 사용할 수 없을 시 사용됨
(예: POST 방식으로 요청을 받는 서버에 GET 요청을 보낼 시 등)406 Not Acceptable (허용되지 않음)
대상 리소스에 이용자 에이전트가 허용할 수 있는 표시가 없을 시 사용됨
407 Proxy Authentication Required (프록시 인증 필요)
401 상태 코드와 유사하지만 클라이언트가 프록시에 먼저 인증해야 함을 나타낼 때 사용됨
408 Request Timeout (요청 시간 초과)
서버가 대기 시간에 완전한 요청 메시지를 받지 못했을 때 사용됨
409 Conflict (충돌)
서버가 요청을 수행하는 중에 충돌 발생 시 사용됨
(서버는 응답 시 충돌에 대한 정보를 함께 포함해야 함)410 Gone (사라짐)
서버는 요청한 리소스가 영구적으로 삭제되었을 때 이 응답이 사용됨
411 Length Required (길이 필요)
서버는 정의된 내용 길이 없이 요청을 승인하지 않으며, 이 응답이 사용됨
412 Precondition Failed (사전조건 실패)
요청 헤더 필드 중 하나 이상에 주어진 전제 조건이 서버에서 거짓으로 확인
시 이 응답이 사용됨413 Payload Too Large (요청 속성이 너무 큼)
요청이 서버가 처리할 수 있는 것보다 클 경우 사용됨
414 Request-URI Too Long (요청 URI가 너무 긺)
Request-URI가 서버가 처리할 수 있는 것보다 길 경우 사용됨
415 Unsupported Media Type (지원되지 않는 미디어 유형)
요청이 요청한 페이지에서 지원하지 않는 형식으로 되어 있을 시 사용됨
416 Requested Range Not Satisfiable (처리할 수 없는 요청 범위)
요청이 페이지에서 처리할 수 없는 범위에 해당되는 경우 사용됨
417 Expectation Failed (예상 실패)
서버는 예상 요청 헤더 필드의 요구사항을 만족할 수 없을 시 사용됨
418 I'm a teapot
HTTP 상 구현되지 않을 것으로 예상되었으나, 현재 Nginx HTTP 서버에서 이 코드를 사용하여 geto와 같은 행동을 시뮬레이션 할 때 사용됨
421 Misdirected Request
요청은 응답을 생성할 수 없는 서버를 대상으로 전송 시 사용됨
422 Unprocessable Entity (처리할 수 없는 엔티티)
서버는 요청의 내용 유형과 구문이 올바르게 되어 있지만, 의미론적 오류로 인해 처리할 수 없을 시 사용됨
423 Locked (잠김)
접근하려고 하는 리소스가 잠겨있을 시 사용됨
424 Failed Dependency (실패된 의존성)
요청된 작업이 다른 작업에 의존하여 해당 작업이 실패 시 사용됨
426 Upgrade Required (업그레이드 필요)
클라이언트는 업그레이드 헤더 필드에 주어진 프로토콜로 요청을 보낼 시 사용됨
428 Precondition Required (전제조건 필요)
서버가 클라이언트에게 전제 조건을 요구 시 사용됨
429 Too Many Requests (너무 많은 요청)
이용자가 일정시간 동안 너무 많은 요청을 보낼 시 사용됨
431 Request Header Fields Too Large (요청 헤더 필드가 너무 큼)
요청 헤더 필드가 너무 클 경우 사용됨
444 Connection Closed Without Response (응답 없음)
연결이 종료되고 응답이 없을 시 사용됨
451 Unavailable For Legal Reasons (법적인 이유로 이용 불가)
법접인 이유로 이용이 불가할 때 사용됨
499 Client Closed Request (클라이언트가 요청을 닫음)
클라이언트가 요청을 닫을 시 사용됨
5×× Server Error
500 Internal Server Error (내부 서버 오류)
서버 내부 오류 발생 시 사용됨
501 Not Implemented (구현되지 않음)
서버에 요청을 수행할 수 있는 기능이 없을 시 사용됨
(예: 요청 메소드를 인식하지 못할 때)502 Bad Gateway (불량 게이트웨이)
서버가 게이트웨이 또는 프록시로 작동하고 있었으며, 업스크림 서버로부터 잘못된 응답을 수신했을 시 사용됨
503 Service Unavailable (서비스를 사용할 수 없음)
서버의 일시적인 과부하 또는 유지보수 때문에 서버가 현재 요청을 처리할 수 없을 시 사용됨
504 Gateway Timeout (게이트웨이 시간 초과)
서버는 게이트웨이 또는 프록시 역할을 하는 동안 URI에 의해 지정된 업스트림 서버(예: HTTP, FTP, LDAP) 또는 요청을 완료하기 위해 액세스하는 데 필요한 다른 보조 서버(예: DNS)로부터 적절한 응답을 수신하지 못할 경우 사용됨
505 HTTP Version Not Supported (HTTP 버전이 지원되지 않음)
서버가 요청에 사용된 HTTP 프로토콜 버전을 지원하지 않을 시 사용됨
506 Variant Also Negotiates
506 상태 코드는 서버에 내부 구성 오류가 있을 시 사용됨
507 Insufficient Storage (용량 부족)
서버가 요청을 완료하는데 필요한 표현을 저장할 수 없을 시 사용됨
508 Loop Detected (루프 감지됨)
서버가 요청을 처리하는 동안 무한 루프가 발생했을 시 사용됨
510 Not Extended (확장되지 않음)
초기 요청에 존재하지 않았던 확장에 대한 정보가 포함된 경우 사용됨
511 Network Authentication Required (네트워크 인증 필요)
511 상태 코드는 클라이언트가 네트워크 액세스를 위해 인증할 필요가 있을 시 사용됨
599 Network Connect Timeout Error (네트워크 연결 시간 초과 오류)
599 상태 코드는 RFC에 지정되어 있지 않지만, 일부 HTTP 프록시에 의해 네트워크 연결 시간 초과 시 사용됨
'Web Vulnerability' 카테고리의 다른 글
파일 업로드(File Upload) 취약점 (0) 2020.04.07 MIME 타입 정리 (0) 2020.02.28 SQL Injection 취약점(2)_Error Based Injection (0) 2020.01.27 SQL Injection 취약점(1)_개요 (0) 2020.01.27 클릭재킹(Clickjacking) 취약점 (0) 2020.01.27