Yozzang의 해킹일기 💻
article thumbnail
Published 2022. 3. 25. 15:29
HTTP 상태 코드 (HTTP Status Code) Web
728x90

오늘은 간략하게 http 상태 코드에 대해서 공부해보겠습니다.

HTTP 상태 코드란 무엇인가?

 

클라이언트(일반적으로 우리의 컴퓨터를 뜻함)는 서버와 통신을 하기 위해서 HTTP 요청을 보내야 한다. 즉 우리는 "www.naver.com" 라는 웹 페이지에 접속할 때 우리의 컴퓨터가 네이버의 서버에게 "야, 나 네이버 페이지에 접속하고 싶어!"라는 요청 메시지를 보낸다. 그러면 네이버의 서버는 우리가 보낸 요청을 받고 회신을 주겠죠? 이러한 회신을 좀 더 전문적인 용어로 표현하자면 바로 HTTP 상태 코드입니다.

 

우리는 서버가 회신해준 HTTP 상태 코드를 통해서 우리가 보낸 요청이 잘 받아들였는지 여부를 알 수 있습니다. 즉 요청의 성공 또는 실패 여부를 판단할 수 있습니다.

 

이러한 상태 코드는 다음 표와 같이 크게 5가지로 분류됩니다.

첫 번째 자리 의미
1xx 조건부 응당
2xx 성공
3xx 리다이렉션 완료
4xx 클라이언트 에러
5xx 서버 에러

각 분류마다 좀 더 세부적으로 살펴 보자면 다음과 같습니다.

 

1xx. Informational response

: 요청을 받았으며 작업을 계속 진행함을 의미합니다.

  • 100 Continue(계속) : 클라이언트가 보낸 요청에 문제가 없으니 다음 요청을 이어서 보내도 된다는 것을 의미한다. 만약 클라이언트의 작업이 완료되었다면 이 응답은 무시해도 된다.
  • 101 Switching Protocol(프로토콜 전환) : 클라이언트가 서버에 프로토콜 전환을 요청했으며 서버는 이를 승인하는 중이다.
  • 102 Processing(처리) : 서버가 요청을 수신하였으며 이를 처리하고 있지만, 아직 제대로 된 응답을 알려줄 수 없음을 의미한다.
  • 103 Early Hints(사전 도움) : 서버가 응답을 준비하는 동안 사용자 에이전트가 사전 로딩을 시작할 수 있도록 한다.

2xx. Success

: 클라이언트 요청이 성공적으로 수신, 수행

  • 200 OK(성공) : 요청이 성공적으로 되었음을 의미한다.
  • 201 Created(작성됨) : 요청이 성공적이었으며 그 결과로 새로운 리소스가 생성됐다.
  • 202 Accepted(허용됨) : 요청을 수신하였지만 그에 응하여 행동할 수 없다.
  • 203 Non-Authoritative Information(신뢰할 수 없는 정보) : 요청을 수신하였지만 요청에 대한 검증이 되지 않음을 의미한다.
  • 204 No Content(내용 없음) : 요청을 수신하였지만 응답 payload에 보낼 데이터가 없음을 의미한다.

3xx. Redirection

: 클라이언트가 요청을 완료하기 위해 추가 조치를 취해야 함

  • 301 Moved Permanently(영구 이동) : 요청한 리소스의 URI가 영구적으로 변경되었음을 의미한다.
  • 302 Found(임시 이동) : 요청한 리소스의 URI가 일시적으로 변경되었음을 의미한다.
  • 304 Not Modified(변경 없음) : 마지막 요청 이후 요청한 페이지는 수정되지 않았다.
  • 305 Use Proxy(프록시 사용) : 클라이언트는 프록시를 사용하여 요청한 페이지만 접근할 수 있다.

4xx. Client Error

: 클라이언트로 인한 오류 발생

  • 400 Bad Request(잘못된 요청) : 잘못된 문법으로 인하여 서버가 요청을 이해할 수 없음을 의미한다.
  • 401 Unauthorized(권한 없음) : 인증되지 않은 사용자가 인증이 필요한 리소스를 요청하는 경우의 응답
  • 403 Forbidden(접근 금지) : 클라이언트가 콘텐츠에 접근할 권리를 가지고 있지 않다.
  • 404 Not Found(찾을 수 없음) : 서버가 요청받은 리소스를 찾을 수 없다.
  • 405 Method Not Allowed(허용되지 않은 메서드) : 요청에 지정된 메서드가 URI로 표시된 리소스에 허용되지 않음을 의미한다.
  • 408 Request Timeout(요청 시간 초과) : 서버의 요청 대기가 시간을 초과하였음을 의미한다.

5xx. Server Error

: 서버로 인한 오류 발생

  • 500 Internal Server Error(내부 서버 오류) : 서버에 오류가 발생하여 요청을 수행할 수 없다.
  • 501 Not Implemented(구현되지 않음) : 서버에 요청을 수행할 수 있는 기능이 없다.
  • 502 Bad Gateway (불량 게이트웨이) : 서버가 게이트웨이로부터 잘못된 응답을 수신했음을 의미한다.
  • 503 Service Unavailable (서비스를 사용할 수 없음) : 서버가 요청을 처리할 준비가 되지 않음을 의미한다. 일반적으로 유지보수를 위해 작동이 중단되거나 과부하가 걸린 경우가 대부분이다.
  • 504 Gateway Timeout (게이트웨이 시간초과) : 서버가 게이트웨이나 프록시 역할을 하고 있거나 또는 업스트림 서버에서 제때 요청을 받지 못했다.

'Web' 카테고리의 다른 글

쿠키 & 세션  (0) 2022.04.01
HTTP 요청 메소드 (HTTP Request Method)  (0) 2022.02.02
URL Meta 문자  (0) 2022.02.01
profile

Yozzang의 해킹일기 💻

@요짱

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!