devlog

[Web] HTTP 응답 코드 본문

Web

[Web] HTTP 응답 코드

bellaah 2019. 9. 12. 23:10

1. 응답 코드란?

HTTP 통신 시, 클라이언트(웹 브라우저)가 서버에 어떠한 요청(request)를 하면 서버는 응답(response)를 보내준다. 서버에서 클라이언트가 보낸 요청이 어떻게 되었는지 알려주는 것이 응답코드이다.

오늘은 그 응답코드의 종류와 의미에 대해서 알아보려고 한다.

 

2. 성공(Success), 2XX

200번대 응답코드는 이 작업을 성공적으로 받았고, 이해했으며, 받아들여졌다는 의미이다. 

  • 200 : 요청은 정상이고, 본문은 요청된 리소스를 포함하고 있다. 또한 가장 일반적으로 볼 수 있는 HTTP상태이다.

  • 201 : 어떠한 생성 작업을 요청받았으며, 생성 작업을 성공하였다.

  • 202 : 요청은 받아들여졌으나, 아직 동작을 수행하지 않은 상태로 요청이 적절함을 의미한다.

  • 203 : 요청을 성공하였지만, 요청에 대한 검증이 되지 않은 상태를 의미한다.

  • 204 : 요청을 성공하였지만, 제공할 내용이 없음을 의미한다.

  • 205 : 204와 동일하지만 새로고침등을 통해 새로운 내용등을 확인할것을 추가로 의미한다.

  • 206 : 요청의 일부분만 성공하였음을 의미한다.

3. 리다이렉션(Redirection), 3XX

300번대 응답코드는 이 요청을 완료하기 위해서는 리다이렉션이 이루어져야 한다는 의미이다. 짧은 주소(단축 URL) 서비스의 경우 접속 시 301이나 302 코드를 보내고, 헤더의 location에 리다이렉션할 실제 URL을 적어 보낸다.

  • 300 : 클라이언트가 동시에 여러 응답을 가리키는 URL을 요청한 경우 응답 목록과 함께 반환된다.

  • 301 : 요청한 URL이 옮겨졌을 때 사용. 옮겨진 URL에 대한 정보와 함께 응답되어야 한다.

  • 302 : 301과 동일하나, 클라이언트는 여전히 옮겨지기전 URL로 요청할것을 의미한다.

  • 303 : 요청받은 행동 수행을 위해서는 다른 URL로 요청 해야함을 의미한다.

  • 304 : 이전의 동일한 요청과 비교하여 변화가 없음을 의미한다. (단시간에 반복된 동일 요청에 대한 대응 코드)

  • 305 : 직접적인 요청이 아니라 반드시 프락시(우회경로)를 통해 요청되어야 함을 의미한다.

  • 307 : 302와 동일하며, HTTP Method도 변경없이 요청하여야 함을 의미한다.

4. 클라이언트 에러(Client Error), 4XX

400번대 응답코드는 요청이 올바르지 않다는 의미이다. 클라이언트가 잘못된 요청을 주었을 때 나타난다.

  • 400 : 클라이언트가 올바르지 못한 요청을 보내고 있음을 의미한다.

  • 401 : 요청을 위해서는 권한 인증등을 요구함을 의미한다.

  • 403 : 요청이 서버에 의해 거부 되었음을 의미, 서버는 거부 이유를 포함하여 응답할 수 있지만, 보통은 거부 이유를 숨기고 싶을 때 사용된다.

  • 404 : 요청한 URL을 찾을 수 없음을 의미한다.

  • 405 : 요청한 URL이 Method를 지원하지 않음을 의미한다. (ex] POST요청에 대한 응답을 하는 URL에 GET으로 요청)

  • 406 : 클라이언트 요청에 대해 적절한 컨텐츠가 없음을 의미한다.

  • 407 : 401과 동일하나, 프락시(우회경로)를 통하여 인증 할 것을 요구함을 의미한다.

  • 408 : 요청에 응답하는 시간이 너무 많은 시간이 걸림을 의미한다.

  • 409 : 클라이언트 요청에 대해 서버에서 충돌 요소가 발생 할수 있음을 의미한다.

  • 410 : 요청한 URL이 더 이상 사용되지 않고 사라졌음을 의미한다.

  • 411 : 클라이언트 요청에 Content-length 헤더가 포함되어야 함을 의미한다.

  • 412 : 클라이언트가 조건부 요청을 했는데 그중 하나가 실패하였음을 의미한다.

  • 413 : 요청이 너무 커서 서버가 처리 할 수 없음을 의미한다.

  • 414 : 요청 URL이 너무 길어 처리 할 수 없음을 의미한다.

  • 415 : 서버가 이해 하지 못하는 유형의 컨텐츠를 요청 하였음을 의미한다.

  • 416 : 클라이언트의 요청 내용이 범위가 잘못되었음을 의미한다.

  • 417 : 클라이언트 요청 헤더의 Expect에 대해 서버가 만족 하지 않음을 의미한다.

5. 서버 에러(Server Error), 5XX

500번대 응답코트는 올바른 요청에 대해 서버가 응답할 수 없다는 의미이다.

  • 500 : 서버에 오류가 발생하여 응답 할 수 없음을 의미한다.

  • 501 : 클라이언트 요청에 대한 서버의 응답 수행 기능이 없음을 의미한다. (ex] 서버가 지원하지 않는 새로운 Method를 사용하여 요청 - GET2, POST2...)

  • 502 : 프락시나 게이트웨이등의 서버에서 응답하며, 서버의 모(엄마)서버에서 오류가 발생하였음을 의미한다.

  • 503 : 현재 서버가 유지보수 등의 이유로 일시적인 사용 불가함을 의미한다.

  • 504 : 서버에서 다른 서버로 요청을 보냈으나, 응답 지연이 발생하여 처리가 불가함을 의미한다.

  • 505 : 서버가 지원할 수 없거나 올바르지 못한 프로토콜로 요청을 받았음을 의미한다.

'Web' 카테고리의 다른 글

[Web] REST API  (1) 2020.01.20
[Web] Http 통신과 Socket 통신  (0) 2019.11.14
[Web] 쿠키(cookie)와 세션(session)  (0) 2019.09.14
[Web] HTTP란 무엇인가?  (2) 2019.09.08
Comments