etc - HTTP 응답 상태 코드

doohyunlm·2021년 8월 30일
1

etc

목록 보기
5/10
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에서 지원하지 않습니다.

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


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



2XX : 성공

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

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



3XX : 리다이렉션

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

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



4XX : 클라이언트 에러

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

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



5XX : 서버 에러

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

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


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




3. 마치며

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

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

profile
백엔드 개발자

0개의 댓글