Status Code에 대해서

채무·2024년 1월 30일

Web

목록 보기
4/11
post-thumbnail

상태코드란?

상태코드 MDN

상태코드란, 특정 HTTP 요청이 성공적으로 완료되었는지 알려주는 코드이다


1) 100번대(정보 응답)

서버가 클라이언트에게 정보성 응답(Informational response)을 줄 때 사용되는 상태코드들입니다

100 Continue

  • 클라이언트가 서버에게 계속 request를 보내도 괜찮은지 물어봤을 때, 계속 request를 보내도 괜찮다고 알려주는 상태코드이다
  • ex) 클라이언트가 용량이 큰 파일을 request의 바디에 담아 업로드하려고 할 때 서버에게 미리 괜찮은지를 물어보고, 서버가 100번 상태코드의 response를 준 이후에 파일 업로드를 시작한다

101 Switching Protocols

  • 클라이언트가 프로토콜을 바꾸자는 request를 보냈을 때, 서버가 프로토콜 변경을 허용할 것을 알려주는 상태코드이다

2) 200번대(성공 응답)

클라이언트의 request가 성공 처리되었음을 의미하는 상태코드이다

200 OK

  • Request가 성공적으로 처리되었음을 포괄적으로 의미하는 상태 코드이다

201 Created

  • Request의 내용대로 리소스가 잘 생성되었다는 뜻이다
  • POST 리퀘스트가 성공한 경우에 200번 대신 201번이 올 수도 있다

202 Accepted

  • Request의 내용이 일단은 잘 접수되었다는 뜻이다
  • 즉, 당장 리퀘스트의 내용이 처리된 것은 아니지만 언젠가 처리할 것이라는 뜻이다
  • Request를 어느 정도 모아서 한번에 실행하는 서버인 경우 등에 이런 응답을 줄 수도 있습니다

3) 300번대(리다이렉션 메시지)

클라이언트의 request가 아직 처리되지 않았고, request 처리를 원하면 클라이언트 측의 추가적인 작업이 필요함을 의미하는 상태 코드이다

301 Moved Permanently

  • 리소스의 위치가 바뀌었음을 나타낸다
  • 보통 이런 상태 코드가 있는 response의 헤드에는 Location이라는 헤더도 일반적으로 함께 포함되어 있다
  • 그리고 그 헤더의 값으로 리소스에 접근할 수 있는 새 URL이 담겨있다
  • 대부분의 브라우저는 만약 GET request를 보냈는데 이런 상태 코드가 담긴 response를 받게 되면, 헤드에 포함된 Location 헤더의 값을 읽고, 자동으로 그 새 URL에 다시 request를 보내는 동작(Redirection)을 수행한다

302 Found

  • 리소스의 위치가 일시적으로 바뀌었음을 나타낸다
  • 이 말은 지금 당장은 아니지만 나중에는 현재 요청한 URL이 정상적으로 인식될 것이라는 뜻이다
  • 이 상태 코드의 경우에도 보통 그 response의 헤드에 Location 헤더가 있고, 여기에 해당 리소스의 임시 URL 값이 있다
  • 이 경우에도 대부분의 브라우저들은 임시 URL로 리다이렉션한다

304 Not Modified

  • 브라우저들은 보통 한번 response로 받았던 이미지 같은 리소스들을 그대로 내부에 저장하고 있다
  • 그리고 서버는 해당 리소스가 바뀌지 않았다면, response에 그 리소스를 보내지 않고 304번 상태 코드만 헤드에 담아서 보냄으로써 '네트워크 비용'을 절약하고 브라우저가 저장된 리소스를 재활용하도록 한다
  • 즉, 이것은 클라이언트에게 응답이 수정되지 않았음을 알려주며, 그러므로 클라이언트는 계속해서 응답의 캐시된 버전을 사용할 수 있다

4) 400번대(클라이언트 에러 응답)

Request를 보내는 클라이언트 쪽에 문제가 있음을 의미하는 상태코드이다

400 Bad Request

  • 말그대로 request에 문제가 있음을 나타낸다
  • request 내부 내용의 문법에 오류가 존재하는 등의 이유로 인해 발생한다

401 Unauthorized

  • 아직 신원이 확인되지 않은(unauthenticated) 사용자로부터 온 request를 처리할 수 없다는 뜻이다

403 Forbidden

  • 신원은 확인되었지만, 해당 리소스에 대한 접근 권한이 없음을 나타낸다

404 Not Found

  • 해당 URL이 나타내는 리소스를 찾을 수 없다는 뜻이다

405 Method Not Allowed

  • 해당 리소스에 대해서 요구한 처리는 허용되지 않는다는 뜻이다
  • ex) 서버의 파일을 누구나 조회할 수 있지만 아무나 삭제할 수 없을 때, DELETE request를 보내면 발생한다

413 Payload Too Large

  • 현재 request의 바디에 들어있는 데이터의 용량이 지나치게 커서 서버가 거부한다는 뜻이다

429 Too Many Requests

  • 일정 시간 동안 클라이언트가 지나치게 많은 request를 보냈다는 뜻이다

5) 500번대(서버 에러 응답)

서버 쪽의 문제로 인해 request를 정상적으로 처리할 수 없음을 의미하는 상태코드이다

500 Internal Server Error

  • 현재 알 수 없는 서버 내의 에러로 인해 request를 처리할 수 없다는 뜻이다

503 Service Unavailable

  • 현재 서버 점검 중이거나, 트래픽 폭주 등으로 인해 서비스를 제공할 수 없다는 뜻이다
profile
개발한 기발자

0개의 댓글