best daram

내배캠 7일차 TIL_Java_HTTP상태코드 본문

TIL_내일배움캠프

내배캠 7일차 TIL_Java_HTTP상태코드

best daram 2023. 12. 27. 20:51
반응형

💡오늘의 학습 키워드

  • HTTP 상태 코드
  • Java

💡공부한 내용 본인의 언어로 정리하기

  • HTTP 상태 코드는 HTTP 프로토콜에서 클라이언트 요청에 대한 서버의 응답 결과를 나타내는 것입니다.
    • HTTP 응답 상태 코드는 클라이언트와 서버 간의 통신에서 발생하는 다양한 상황을 식별하고 처리하는 데 사용됩니다.
    • 이를 이용해서 클라이언트와 서버간의 원활한 통신을 가능하게 합니다. 
    • 각각의 상태 코드는 특정한 의미를 갖고 있으며, 클라이언트에게 요청이 어떻게 처리되었는지 알려줍니다.

다음 각 대역 별 정리

  • 1XX: Informational(정보 제공)
    • 이 상태 코드는 클라이언트의 요청이 수신되어 처리 중임을 나타냅니다. 
    • 임시 응답으로 현재 클라이언트의 요청까지는 처리되었으니 계속 진행하라는 의미입니다.
    • 100 (Continue) 임시적인 응답, 지금까지 상태가 괜찮으며 클라이언트가 계속해서 요청을 하거나 이미 요청을 완료한 경우에는 무시해도 된다는 뜻입니다.
    • 102 (Processing) 이 코드는 서버가 요청을 수신하여 이를 처리하고 있지만, 아직 제대로 된 응답을 알려줄 수 없다는 뜻입니다.
  • 2XX: Success(성공)
    • 클라이언트의 요청이 서버에서 성공적으로 처리되었다는 의미입니다.
    • 200 (OK) Sucsess 요청이 성공적으로 되었다는 뜻입니다.
    • 201 (Created) 요청에 따른 새로운 리소스를 성공적으로 생성했다는 뜻입니다.
    • 202 (Accepted) 요청이 접수되었지만, 처리가 완료되지 않았다는 뜻입니다.
    • 204 (No Content) 서버가 요청을 성공적으로 처리했지만 콘텐츠를 제공하지 않는다는 뜻입니다.
  • 3XX: Redirection(리다이렉션)
    • 추가 동작이 필요한 경우를 의미합니다.
    • 클라이언트가 요청한 리소스의 위치가 변경되었거나 다른 리소스로 이동해야 할 때 사용됩니다
    • 리다이렉션의 이해 : 웹 브라우저는 3XX응답의 결과에 Location 헤더가 있으면, Location 위치로 자동으로 이동하게 됩니다. 이걸 리다이렉트라고 합니다.
      • 영구 리다이렉션 : 특정 리소스의 URI가 영구적으로 이동 : 301, 308
      • 일시 리다이렉션 : 일시적인 변경 (주문 완료 후 주문 내역 화면으로 이동) 302,307,303 
      • 특수 리다이렉션 : 결과 대신 캐시를 사용
  • 리다이렉션 종류
  • 영구 리다이렉션
    • 301 (Moved Permanenty) 요청한 URL이 새로 변경 되었다, 요청한 리소스의 URL이 새 URL로 옮겨진 상태라는 뜻입니다.
      • 리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거 될 수도 있습니다.
    • 308 (Permanent Redirect) 301과 기능은 같습니다. 리다이렉트시 요청 메서드와 본문을 유지합니다. 
      • 처음 POST를 보내면 리다이렉트도 똑같이 포스트로 보내고, 그 내부에 html바디에 보낸 데이터를 유지합니다.
    일시 리다이렉션
    • 302 (Found) 리다이렉트 요청 메서드가 GET으로 변하고, 본문이 제거 될 수도 있습니다.
    • 307 (Temporary Redirect) 302와 기능은 같습니다. 리다이렉트 요청 메서드와 본문을 유지합니다.
    • 303 (See Other) 302와 기능은 같습니다. 리다이렉트시 요청 메서드가 GET으로 변경
  • 기타 리다이렉션
    • 304 (Not Modified) 캐시를 목적으로 사용합니다. 클라이언트에게 리소스가 수정되지 않았음을 알려줍니다.
      • 클라이언트는 로컬 PC에 저장된 캐시를 재사용한다. (캐시로 리다이렉트 한다.)
  • 4XX: Client Error(클라이언트 에러)
    • 클라이언트 측에서 발생한 오류를 나타냅니다. 
    • 클라이언트의 요청이 잘못되었거나, 요청한 리소스에 대한 접근 권한이 없는 등 클라이언트의 잘못된 요청에 대한 응답입니다.
    • (클라이언트가 이미 잘못된 요청을 하고 있기 때문에) 재시도를 해도 실패합니다. 
    • ex) 요청 파라미터가 잘못되거나, API 스펙이 맞지 않을 때
    • 401 (Unauthorized) 클라이언트가 해당 리소스에 대한 인증이 필요하다는 뜻입니다.
    • 403 (Forbidden) 서버에서 허락되지 않는다는 뜻입니다. (콘텐츠에 접근할 권한을 가지고 있지 않은 상태)
    • 404 (Not Found) 요청 리소스를 찾을 수 없다는 뜻입니다. (요청 리소스가 서버에 없다.)
    • 400 (Bad Request) 요청에 문제가 있기 때문에 서버에서 인식할 수 없다는 뜻입니다.
  • 5XX: Server Error(서버 에러)
    • 서버 측에서 발생한 오류를 나타냅니다.
    • 서버 사정으로 메시지 처리에 문제가 발생한 경우. 서버의 부하, DB 처리 과정 오류, 서버에서 익셉션이 발생하는 경우를 의미합니다.
    • 서버에 문제가 있기 때문에 복구가 되는 등 재시도하면 성공할 수도 있습니다.
    • 500 (Internal Server Error) 서버에서 처리 시 문제가 발생했다는 뜻입니다.(프로그램 내부적인 오류)
      • 일반적인 서버 에러 메세지로 요청사항을 이행할 수 없는 상태입니다.
    • 503 (Service unavailable) 일시적인 서비스 중단 상태를 의미합니다.
      • 서버가 오버로드되었거나 유지관리를 위해 다운되었기 때문에 현재 서버를 사용할 수 없다는 뜻입니다.

 

💡오늘의 회고

  • 12시간 중 얼마나 몰입했는지
    • 오전보다는 확실히 오후가 더 집중이 잘 되었다. 
  • 더 나은 미래를 위해 내일 어떤 공부를 진행할 것인지
    • HTTP 상태 코드에 대해서 공부했다.
    • 자바 관련 개념들 정리해둔 것을 조금 복습했다.
    • 개인 프로젝트 (스프링부트 활용) 를 마저 만들었다.

💡잘한 점

  • 개인프로젝트 진행시 노션으로 에러메세지와 해결한 코드를 기록하면서 문제를 해결해 나간 점.

💡개선점

  • 잘 실행되지 않을 경우에는, 하나씩 차분하게 풀어 나가자!

💡배운 점

  • HTTP상태코드에 대해서 배웠다. 뒤의 번호가 잘 생각이 나지 않는다면, 맨 앞의 숫자를 통해서 유추해 나간다는 것을 배웠다.

반응형