http-stauts

ys·2023년 12월 31일
0

Computer Science

목록 보기
3/5

HTTP 상태코드 : 클라이언트가 보낸 요청의 처리 상태를 응답해서 알려주는 기능

김영한 강사님의 "모든 개발자를 위한 HTTP 웹 기본 지식" 강의를 들었습니다.

  • 클라이언트에게 서버가 무슨 오류가 나는지 잘 전달해줘야 한다
  • 만약 모르는 상태 코드가 나타난다면..? -> 상위 상태코드로 해석하기(앞자리 보라고!!!)
  • 1xx (Informational): 요청이 수신되어 처리중
  • 2xx (Successful): 요청 정상 처리
  • 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요
  • 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음
  • 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함

<1XX>

  • 요청이 수신되어 처리중
  • 거의 사용 X -> 생략

<2XX>

  • 클라이언트의 요청을 성공적으로 처리
  • 200 OK
  • 201 Created(서버에 새로운 리소스 생성될때 -> Location헤더 필터로 주면서 201응답)
  • 202 Accept(요청은 접수, 처리가 완료 X)
  • 204 No Content(서버가 요청 성공적으로 수행, 본문에 보낼 데이터가 없음)

<3XX>

  • 요청이 완료되기 위해, 유저 에이전트의 추가 조치 필요
  • 리다이렉트 : 웹 브라우저는 3xx 응답의 결과에 Location헤더가 있으면, Location 위치로 자동 이동
  • 영구 리다이렉션 : 특정 리로스 URI가 영구적으로 이동
    /members -> /users
    /event -> /new-envent
  • 301 Moved Permanently
    리다이렉션 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음
  • 308 Permanent Redirect
    301과 기능이 같음
    리다이렉트시 요청 메서드 본문 유지(POST로 보내면 리다이렉트도 POST 유지 )
  • 일시적 리다이렉션 : 리소스의 URI가 일시적으로 변경
    검색 엔진등에서 URL 변경하면 안됨
  • 302 Found
    리다이렉트시, 요청 메서드가 GET으로 변하고 본문이 제거될 수 있음
  • 303 See Other
    302랑 기능은 같음
    리다이렉트시 요청 메서드가 GET으로 변경
  • 304 Not Modified
    캐시를 목적으로 사용
    클라이언트에게 리소스가 수정되지 않았음을 알려줌 -> 클라이언트는 로컬PC에 저장된 캐쉬 사용
    304응답은 메시지 바디를 포함하면 안된다
  • RPG : POST/Redirect/Get
    POST로 주문후에 웹 브라우저를 새로고침하면?
    새로고침 직전에 POST였으니까 한번더 POST -> 중복 주문 !!! -> 심각한 오류
    POST주문후에 새로고침으로 인한 중복 주문 방지 -> RPG
    POST주문 후에 주문 결과 화면을 GET메서드로 리다이렉트
    새로고침하면 GET화면 조회 -> 중복 주문 대싱 화면만 GET으로 요청

<4XX>

  • 오류의 원인은 클라이언트에게 있다!!!
  • 클라이언트의 요청에 잘못된 문법등으로 서버가 요청을 수행할 수 없음
    서버가 복구하고 똑같이 재시도해도 실패(5XX와 차이)
  • 400 : Bad Request
    클라이언트가 잘못된 요청 -> 서버 요청 처리 x
    요청 파라미터, API스펙등이 잘못 됐을 때
    클라이언트는 요청 내용을 다시 검토하고 보내야 함
  • 401 Unauthorized
    인증이 되지 않음
    인증(Authentication) : 본인이 누구인지 확인, 로그인...
    인가(Authorization) : 권한부여, 관리자만 권한 있는데 권한이 없어서 접근 불가...
  • 403 Forbidden
    서버가 요청을 이해했지만, 승인을 거부한
    주로 인증 자격은 얻었지만, 접근 권한이 불충분할때
    관리자 등급이 아닌 사용자가 관리자 자격이 있어야 볼 수 잇는 리소스에 접근했을 때
  • 404 Not Found
    요청 리소스가 서버에 없을 때
    클라이언트가 권핰이 부족한 리소스에 접근, 서버가 리소스를 숨기고 싶을 때

<5XX>

  • 서버 문제로 요류 발생
  • 서버에 문제가 있어 재시도 하면 성공할 수도 있음
  • 501 Internal Server Error
    서버 내부 문제로 오류 발생
    애매하면 500 오류
  • 503 Service Unavailable
    서버에 일시적 과부화, 예정된 작업으로 처리 불가
    Retry-Ather로 얼마뒤에 복구 -> 잘 사용못함... 내맘대로 오류가 나는게 아님
profile
개발 공부,정리

0개의 댓글