ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 240115 HTTP 상태코드
    TIL 2024. 1. 15. 21:51

     

     

    1xx, 2xx, 3xx, 4xx, 5xx 가 있으며 종류도 엄청 많다. 

    물론 다 사용하는게 능사는 아니다. 상황에 따라서, 팀이랑 조율해서 사용할것

     

    1xx  Informational

    • 100번대 상태코드
    • 요청처리중
    • 거의 안쓰는편. 나도 한번도 본적 없다..

     

    2xx  Successful

    • 200번대 상태코드. 요청완료 때 뜬다.
    • 200 ok.
      • 요청처리완료. 가장 무난하고 자주 보는 상태코드
    • 201 created.
      • 생성하다.
      • Post 같이 뭔가 새로운 리소스가 생성 됬을때 사용
    • 202 Accepted
      • 요청완료, 처리진행중
      • 딜레이가 필요한 작업에 사용
      • ex) 접수 후 한시간 후에 시작 (알람?)
      • however... 잘 사용 안함
    • 204 No Content
      • 요청완료, 클라측에 전송할 내용(컨텐츠) 없음
      • ex) save 버튼 누를때 -> 별도 메세지 전해줄게 없다!

     

    3xx  Redirection

    리다이렉션 - 재시도. 유저 에이전트(클라이언트)의 추가 조치가 필요함.

     

    1. 영구 리다이렉션
    • 특정 리소스의 URI가 다른 URI로 영구적 이동 시켰을때 사용
    • 검색 엔진에서도 변경 된 URI 사용
    • 구 URI로 요청시 신 URI를 응답해 신URI로 연결 시킨다
    • 301, 308 상태코드 사용
      • 301 - 리다이렉트 요청 후 POST요청을 거의 GET(메세지바디 소실)으로 변경
      • 308 - 301에서 기존 요청 메서드를 유지 시킴

     

    2. 일시 리다이렉션
    • 일시적 URI 변경
    • 검색 엔진에서 URI 변경X
    • 302, 307, 303 상태코드 사용
      • 302 - 리다이렉션 요청 후 POST요청을 거의 GET(메세지바디 소실)으로 변경
      • 307 - 302에서 기존 요청 메서드를 유지 시킴
      • 303 - 302받고 모든 요청을 GET으로 바꿈
    • 대게 302 씀

     


    + PRG ~Post Redirect Get~

    POST 요청> 302 리다이렉션 응답> GET 으로 전환하는 방법

    중복요청 위험성이 있는 POST 이후 리다이레션을 줘 GET으로 바꾼다.
    클라이언트에서 새로고침창을 띄우는 방법도 있지만 서버측에서도 방지하는게 좋음(이게 더 깔끔하다)
    ex)구매화면에서 새로고침으로 인한 중복구매 방지

     

     

    3.기타 리다이렉션
    • 300 Multiple Choices
      • 안쓴다!
    • 304 Not Modified
      • 클라이언트에게 리소스 수정이 없었음을 알려준다 -> 기존꺼 사용해도 ok란 뜻
      • 새 리소스를 다운받지 않고 기존 캐시를 사용한다
      • 기존 캐시를 사용해야함으로 메시지바디 포함X

     

    4xx Client Error

    • 클라이언트 오류. 요청메세지 오류
    • 클라이언트가 보낸 요청이나 인가가 맞지 않을때
    • 400 Bad Request
      • 요청 파라미터나 API가 안맞음
      • 서버오류로 이어질수 있기에 규격에 안맞는 요청들을 잘 걸러내야함
    • 401 Unauthorized
      • 클라이언트의 리소스 인증 필요
      • 인증 필요
    • 403 Forbidden
      • 요청은 이해하나 승인 거부
      • 인증 O but 인가가 없는 경우(상위 리소스 접근)
      • ex)멤버가 마스터 권한 접근시
    • 404 Not Found
      • 요청 리소스 서버에 없음
      • 없는 페이지인척 하고 싶을때 사용w

    5xx Server Error

    • 서버 오류. 요청수행불가
    • 500 Internal Server Error
      • 서버 내부 문제 오류 발생
      • 카테고리 애매하면 그냥 500 날림
    • 503 Service Unavailable
      • 서비스 이용 불가
      • 서버점검이나 과부하시 다운때 사용
      • 근데 그냥 500 쓴다

     

     

    4xx은 클라이언트 요청문제라 100번 시도해도 100번 실패하지만

    5xx는 서버문제라 나중에 다시 시도하면 성공할수 있음

    이게 둘의 큰 차이점!

     


     

    서버 오류는 진짜 DB에 문제가 생겼거나 쿼리문에 이상 있을때 해야한다. 클라이언트나 이용하는 *고객의 특수성에 따라 발생하는 문제에 쉽사리 500 코드를 걸어선 안됌

    *은행 인출시 잔액 부족, 미성년자가 담배구매

    'TIL' 카테고리의 다른 글

    240110 HTTP 메서드 활용  (0) 2024.01.10
    240106 HTTP 메서드  (0) 2024.01.06
    240105 HTTP 기본 - 용청/응답 메세지  (1) 2024.01.05
    240105 HTTP 기본  (0) 2024.01.05
    240104 URI와 웹 브라우저 요청 흐름  (1) 2024.01.04
Designed by Tistory.