본문 바로가기
http

[HTTP]#7 HTTP 상태 코드

by 쁘띠뀨띠 2023. 12. 7.

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

1_1xx (Informational) : 요청이 수신되어 처리중

 

2_2xx (Successful) : 요청 정상 처리

- 200 ok 요청 성공

- 201 created 요청 성공해서 새로운 리소스가 생성

- 202 accepted 요청이 접수되었으나 처리가 완료되지 않았음

- 204 no content 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음

 

      예) 웹 문서 편집기에서 save 버튼

          save결과로 아무 내용이 없어도 된다.

          save 눌러도 같은 화면을 유지해야 한다.

 

3_3xx (Redirection) : 요청을 완료하려면 유저 에이전트의 추가 행동이 필요

- 영구 리다이렉션

     특정 리소스의 URI가 영구적으로 이동

     원래의 URL를 사용 X, 검색 엔진 등에서도 변경 인지

301(Moved Permanently) : 리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음

308(Permanent Redirect) : 리다이렉트시 요청 메서드와 본문 유지

 

- 일시 리다이렉션 : 일시적인 변경

     리소스 URI가 일시적으로 변경

     따라서 검색 엔진 등에서 URL을 변경하면 안됨

302(Found) : 리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음

307(Temporary Redirect) : 리다이렉트시 요청 메서드와 본문 유지(요청 메서드를 변경하면 안된다.)

303(See Other) : 리다이렉트시 요청 메서드가 GET으로 변경

 

- 특수 리다이렉션 : 결과 대신 캐시를 사용

304(Not Modified) : 캐시를 목적으로 사용, 클라이언트에게 리소스가 수정되지 않았음을 알려준다.

     따라서 클라이언트는 로컬 PC에 저장된 캐시를 재사용한다.(캐시로 리다이렉트한다.)

     304응답은 응답에 메시지 바디를 포함하면 안된다.(로컬 캐시를 사용해야 하므로)

     조건부 GET, HEAD요청시 사용 

 

4_4xx (Client Error) : 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음

400(Bad Request) : 요청 구문, 메시지 등 오류, 검토 후 재전송 해야함. (파라미터 오류, API스펙이 맞지 않을 때)

401(Unauthorized) : 인증되지 않음, 응답에 WWW-Authenicate 헤더와 함께 인증 방법 설명

     인증(Authentication) : 본인이 누구인지 확인(로그인) 

     인가(Authorization) : 권한부여 (ADMIN 권한처럼 특정 리소스에 접근할 수 있는 권한, 인증이 있어야 인가가 있음)

     오류 메시지가 Unauthorized이지만 인증 되지 않음

403(Forbidden) : 서버가 요청을 이해했지만 승인을 거부, 인증(로그인)O but 권한 불충분

404(Not Found) : 요청 리소스를 찾을 수 없음

 

5_5xx (Server Error) : 서버 오류, 서버가 정상 요청을 처리하지 못함

500(Internal Server Error) : 서버 내부 문제, 애매하면 500

503(Service Unavailable) : 서비스 이용 불가, 일시적인 과부하 또는 예정된 작업으로 잠시 요청 처리 불가