본문 바로가기
Security

HTTP 상태코드

by Hide­ 2014. 11. 1.
반응형

1xx : 정보를 제공함


2xx : 요청이 성공적으로 이뤄짐


3xx : 요청한 해당 자원이 다른곳에 있음


4xx : 요청(클라이언트)에 문제가 있음


5xx : 서버에 문제가 있음



100 Continue : 클라이언트가 서버에게 메시지바디를 포함한 요청을 보냈을 때 받는 응답코드다. 서버의 응답에는 클라이언트가 요청한 헤더를 전송받았고 클라이언트는 계속해서 서버에게 바디를 보낼 수 있다고 나타낸다. 서버는 클라이언트의 요청이 완료되면 두 번째 응답을 보낸다.


200 OK : 클라이언트의 요청이 성공했다는것을 나타낸다. 서버의 응답메시지 바디에 클라이언트가 요청한 내용에 대한 결과를 포함한다.


201 Created : 클라이언트의 PUT 요청이 성공저깅라는 것을 나타낸다.


301 Moved Permanently : 브라우저의 요청을 다른 URL로 항시 전달한다는 것을 의미한다. 다른 URL에 대한 정보는 Location 헤더에 나타난다. 따라서 클라이언트는 예전 URL 대신에 새로 바뀐 URL을 통해 자원을 찾는다.


302 Found : 브라우저의 요청을 임시 URL로 바꾸고 Location 헤더에 임시로 변경한 URL에 대한 정보를 적는다. 클라이언트가 다음에 같은 요청을 하면 기존의 URL로 돌아간다.


304 Not Modified : 브라우저가 서버에게 요청한 자료에 대해 서버는 클라이언트 내에 복사된 캐시를 사용하게 한다. 서버는 If-Modified-Since와 If-None-Match 요청헤더를 사용해 클라이언트가 가장 최근의 자료를 가지고 있는지 여부를 확인한다.


400 Bad Request : 클라이언트가 서버에게 잘못된 HTTP 요청을 했다는 것을 나타낸다. 예를 들어 클라이언트가 URL 주소의 중간에 빈 공간을 넣는 등 부적절한 방법으로 서버에게 요청을 한 경우 400 Bad Request 응답코드를 받는다.


401 Unauthorized : 서버가 클라이언트의 요청에 대해 HTTP 인증 확인을 요구하는것을 의미한다. www-authenticate 헤더는 인증과 관련된 내용을 지원하는 다양한 타입에 대한 정보를 담고 있다.


403 Forbidden : 클라이언트의 요청에 대해 접근을 차단한다는 것을 나타낸다.


404 Not Found : 클라이언트가 서버에게 요청한 자료가 존재하지 않는다는 것을 나타낸다.


405 Method Not Allowed : 클라이언트가 요청에 이용한 메소드가 해당 URL에 지원이 불가능하다는 것을 나타낸다. 예를 들어 PUT 방식을 지원하지 않는 곳에서 클라이언트가 PUT 메소드를 통해 서버에게 자원을 요청했다면 405 상태코드를 보게 된다.


413 Request Entity Too Large : 클라이언트가 요청한 바디를 서버에서 처리하기에는 너무 크다는 것을 나타낸다. 예를 들어 버퍼 오버플로우의 취약점을 찾고자 긴 문자열 데이터를 서버에 전송하면 413 상태코드를 보게 된다.


414 Request URI Too Long : 413 응답과 비슷하지만 414 메시지는 요청에 사용된 URL이 서버가 감당할 수 없을 만큼 크다는 것을 나타낸다.


500 Internal Server Error : 서버가 클라이언트의 요청을 실행할 수 없을때 500 상태코드가 발생한다. 보통 서버가 예상하지 못한 요청을 보냈을 때 애플리케이션이 적절히 처리하지 못할 경우 500 상태코드를 볼 수 있다. 어디서 문제가 생겼는지 알아보려면 서버의 응답 내용을 상세히 살펴봐야 한다.


503 Service Unavailable : 웹서버는 클라이언트의 요청에 대해 정상적으로 응답할 수 있으나 서버에서 구동중인 애플리케이션이 응답을 하지 못할 때 나타난다. 503 상태코드의 경우 클라이언트가 요청을 잘못해서 발생했는지 아니면 서버에 있는 애플리케이션이 문제가 있는지 잘 확인해야 한다.


출처 : 웹 해킹&보안 완벽가이드