본문 바로가기

코딩/네트워크

[HTTP] 상태 코드

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

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

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

3xx (Redirection): 요청을 완료하기 위해 추가 작업 필요

4xx (Client Error): 클라이언트 오류, 잘못된 방식의 요청

5xx(Sever Error): 서버 오류, 서버가 요청을 처리하지 못함

 

2xx

200 OK: 요청 성공

201 Created : 요청에 의해 새로운 리소스 생성

202 Accepted: 요청 접수, 처리는 완료되지 않음

204 No Content: 요청을 수행했지만, 본문에 보낼 데이터가 없음

 

 

3xx

웹 브라우저가 3xx 응답 결과에 Location 헤더가 있으면, 그 위치로 자동 이동한다!

 - 영구 리다이렉션 : 특정 리소스의 URI가 영구적으로 이동

    301, 308

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

   302, 307, 303

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

 

영구 리다이렉션 301, 308

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

 - 308 Permanent Redirect : 리다이렉트시 메서드와 본문을 요청에서 준 것으로 유지

 

일시 리다이렉션 302, 307, 303

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

 - 307 Temporary Redirection : 리다이렉트시 메서드와 본문을 요청에서 준 것으로 유지

 - 303 See Other : 리다이렉트시 메서드가 GET 으로 변경

활용 방법: 주문 후 새로고침을 하면 POST 함수가 1번 이상 호출되어서 중복 주문이 발생할 수 있음

                주문 완료 응답을 302로 보내면 화면이 자동 리다이렉트 되고, 새로고침을 해도 GET 함수가 호출돼서 중복 주문 방지 가능.

 

300 Multiple Choices : 안 쓴다..

304 Not Modified : 캐시를 목적으로 사용. 클라이언트에게 로컬 PC에 저장된 캐시를 재사용하라고 알려줌! (따라서 메시지 바디 X)\

                                 조건부 GET, HEAD 요청 시 사용

 

4xx

클라이언트의 요청에 잘못된 문법 등으로 서버가 요청을 수행할 수 없음

401 Unauthorized : 인증되지 않음

403 Forbidden : 인증 자격은 있지만, 접근 권한이 없음

404 Not Found : 요청 리소스가 서버에 없음 or 리소스를 숨기고 싶을 때

 

5xx

서버 문제로 오류 발생

500 Internal Server Error : 서버 내부 오류. 애매하면 500 오류로!

503 Service Unavilable : 일시적인 과부하 또는 예정된 작업으로 처리 불가능.