etc - HTTP 응답 상태 코드

doohyunlm·2021년 8월 30일
1

etc

목록 보기
6/8
post-thumbnail

목차


  1. HTTP 상태 코드란?
  2. HTTP 상태 코드
  3. 마치며

  • 개발을 하다보면 많이 접하게 되는 것이 바로 HTTP 상태 코드입니다.

  • 협업을 하게 되면 이에 대해 잘 정리하고 가는 것 또한 중요하기에 포스팅을 작성하게 되었습니다.




1. HTTP 상태 코드란?


  • HTTP(HyperText Transfer Protocol)는 W3 상에서 정보를 주고 받을 수 있는 프로토콜로
    상호 간의 정의한 규칙으로 데이터를 주고 받기 위한 방식입니다.

    w3 : 웹 표준과 가이드라인을 제공하는 조직입니다.

  • HTTP 상태 코드는 위 규칙에 의거하여 정해 놓은 규칙들을 말합니다.


|번호대|규칙|설명|
|:---:|:---:|:---:|
|1XX|정보|요청을 받았으며 프로세스를 계속 진행합니다.|
|2XX|성공|요청을 성공적으로 처리하였습니다.|
|3XX|리다이렉션|요청 완료를 위한 추가 작업이 필요합니다.|
|4XX|클라이언트 에러|요청의 방식이 잘못되었거나 요청을 처리할 수 없습니다.|
|5XX|서버 에러|서버 오류로 처리할 수 없습니다.|




2. HTTP 상태 코드


1XX : 정보

  • 상태 코드가 '1'로 시작되는 경우 서버가 요청을 받았으며 프로세스를 계속 진행해도 된다는 의미입니다.

  • 해당 코드는 HTTP 1.0에서 지원하지 않습니다.

  • 실무에서 잘 사용하지는 않는 코드입니다.


|번호|의미|설명|
|:---:|:---:|:---:|
|100|Continue|진행 중임을 의미하는 응답코드입니다. 클라이언트가 계속해서 요청하거나 이미 요청을 완료한 경우에는 무시해도 되는 것을 의미합니다.|
|101|Switching Protocol|클라이언트가 보낸 Upgrade 요청 헤더에 대한 응답이 들어가며, 서버에서 프로토콜을 변경할 것임을 알려줍니다. 해당 코드는 Websocket 프로토콜 전환 시에 사용됩니다.|
|102|Processing(WebDAV)|서버가 요청을 수신하였으며 이를 처리하고 있지만, 아직 제대로 된 응답을 줄 수 없는 것을 의미합니다.|



2XX : 성공

  • 상태코드가 '2'로 시작될 경우 대부분 성공의 의미를 뜻합니다.

|번호|의미|설명|
|:---:|:---:|:---:|
|200|OK|성공하였고 정보에 따른 응답을 반환합니다.|
|201|Created|성공적이었고 새로운 리소스가 생성되었습니다. 보통 POST 요청입니다.|
|204|No Content|성공했으나 응답 데이터가 없습니다.|
|205|Reset Content|성공했으나 클라이언트 일부 화면을 새로고침하도록 요청합니다.|
|206|Partial Conent|성공했으나 일부 데이터만 반환됩니다.|



3XX : 리다이렉션

  • 상태코드가 '3'로 시작될 경우 대부분 클라이언트가 이전 주소로 데이터를 요청하여 서버에서 새 URL로 리다이렉트를 유도하는 경우입니다.

|번호|의미|설명|
|:---:|:---:|:---:|
|301|Moved Permanently|요청한 리소스의 URL이 변경되었음을 의미합니다.|
|303|See Other|클라이언트가 요청한 리소스를 다른 URL에서 GET 요청을 통해 얻어야 할때, 서버가 클라이언트로 보내는 응답입니다.|
|304|Not Modified|응답이 수정되지 않았음을 알려주며, 캐시된 데이터를 사용하라는 의미입니다.|



4XX : 클라이언트 에러

  • 상태코드가 '4'로 시작될 경우 대부분 클라이언트의 코드가 잘못된 경우로 유효하지 않은 자원을 요청했거나 요청이나 권한이 잘못된 경우 발생합니다.

|번호|의미|설명|
|:---:|:---:|:---:|
|400|Bad Request|이 응답은 잘못된 문법으로 인하여 서버가 요청하여 이해할 수 없음을 의미합니다.|
|401|Unauthorized|비록 HTTP 표준에서는 '미승인(unauthorized)'를 명확히 하고 있지만, 의미상 이 응답은 '비인증(unauthenticated)'를 의미합니다. 클라이언트는 요청한 응답을 받기 위해서는 반드시 스스로를 인증해야 합니다.|
|403|Forbidden|클라이언트는 콘텐츠에 접근할 권리를 가지고 있지 않습니다.|
|404|Not Found|서버는 요청받은 리소스를 찾을 수 없습니다. 브라우저에서는 알려지지 않은 URL을 의미합니다|
|405|Method Not Allowed|요청한 메소드는 서버에서 알고 있지만, 제거되었고 사용할 수 없습니다. 필수적인 메소드인 GET과 HEAD는 제거될 수 없으며, 이 에러 코드를 리턴할 수 없습니다.|
|406|Not Acceptable|사용자 에이전트에서 정해준 규격에 따른 어떠한 콘텐츠도 찾지 않았을 때, 웹서버가 보냅니다.|



5XX : 서버 에러

  • 상태코드가 '5'로 시작될 경우 대부분 서버 쪽에서 에러가 난 경우입니다.

  • 5XX 에러의 경우는 절대 사용자들에게 노출되어서는 안됩니다.


|번호|의미|설명|
|:---:|:---:|:---:|
|500|Internal Server Error|웹 사이트 서버에 문제가 있음을 의미하지만 서버는 정확한 문제에 대해 더 구체적으로 설명할 수 없습니다.|
|501|Not Implemented|서버가 요청을 이행하는 데 필요한 기능을 지원하지 않음을 나타냅니다.|
|502|Bad Gateway|서버가 게이트웨이로부터 잘못된 응답을 수신했음을 의미합니다. 인터넷상의 서버가 다른 서버로부터 유효하지 않은 응답을 받은 경우 발생합니다.|
|503|Service Unavailable|서버가 요청을 처리할 준비가 되지 않았습니다. 일반적인 원인은 유지보수를 위해 작동이 중단되거나 과부하가 걸린 서버입니다.|
|504|Gateway Timeout|웹페이지를 로드하거나 브라우저에서 다른 요청을 채우려는 동안 한 서버가 액세스하고 있는 다른 서버에서 적시에 응답을 받지 못했음을 의미합니다.|
|506|Variant Also Negotiates|서버에 내부 구성 오류가 있는 경우 발생합니다.|




3. 마치며

  • 가장 많이 쓰는 status는 200,201,400,401,403,406정도 같습니다.

  • 필수적으로 알아두면 좋은 status에 대한 설명이었습니다. 틀린 점이 있으시면 알려주시면 감사하겠습니다.

profile
백엔드 개발자

0개의 댓글