상태코드: 클라이언트가 보낸 요청의 처리상태를 응답에서 알려주는 기능
-1xx(Informational): 요청이 수신되어 처리중 (거의 안씀)
-2xx(Successful): 요청 정상 처리 (e.g. 200 OK)
-3xx(Redirection): 요청을 완료하려면 추가 행동이 필요
-4xx(Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음
-5xx(Server Error): 서버 오류, 서버가 정상요청을 처리하지 못함
2xx: 클라이언트의 요청을 성공적으로 처리
-200 OK
-201 Created(POST -> 서버가 URI 생성)
-202 Accepted(접수는 되었으나 미완료 e.g. batch)
-204 No Content(응답 본문에 보낼 데이터가 없음 e.g. save 버튼)
3xx: 요청을 완료하기 위해 유저 에이전트(웹 브라우저)의 추가 조치 필요
-웹 브라우저는 3xx 응답의 결과에 Location헤더가 있으면, Location 위치로 자동 이동
-종류
-영구 리다이렉션: 특정 리소스의 URI가 영구적으로 이동
-일시 리다이렉션: 일시적인 변경(주문완료 후 주문내역 이동), PRG(POST/Redirect/GET)
-특수 리다이렉션: 결과 대신 캐시를 사용
-300 Multiple Choices (거의 안씀)
-301 Moved Permanently
-302 Found
-303 See Other
-304 Not Modified
-307 Temporary Redirect
-308 Permanent Redirect
-영구 리다이렉션(301, 308)
-301(Moved Permanently): 리다이렉트시 요청메서드가 GET으로 변하고, 본문이 제거될수 있음
-308(Permanent Redirect): 리다이렉트시 요청메서드와 본문유지(POST와 메시지 유지)
-일시적인 리다이렉션(302, 307, 303)
-302(Found): 리다이렉트시 요청메서드가 GET으로 변하고, 본문이 제거될수 있음(관례로 많이 사용)
-307(Temporary Redirect): 리다이렉트시 요청메서드와 본문유지 필수
-303(See Other): 리다이렉트시 요청메서드가 GET으로 변경(명확)
-PRG: Post/Redirect/Get
-POST로 주문후에 웹 브라우저를 새로고침 -> 중복주문 가능(낭패)
-POST로 주문후에 주문 결과 화면을 GET 메서드로 리다이렉트 (서버는 DB에서 조회후 응답 전달)
-새로고침해도 GET으로 조회됨
-기타 리다이렉션(304)
-304(Not Modified)
-캐시를 목적으로 사용(클: 캐시 그대로 써도 됨? -> 서버: ㅇㅇ -> 클: 캐시 재사용(캐시 리다이렉트)),
-조건부 GET, HEAD 요청시 사용
4xx(클라이언트 오류)
-오류의 원인이 클라이언트에 있음
-이미 오류(스펙이 안맞음)가 있기에 똑같은 재시도가 실패함
-400(Bad Request): 클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할수 없음(요청 구문, 메시지 등등 오류)
-401(Unauthorized): 해당 리소스에 대한 인증(로그인)이 필요함, 응답에 WWW-Authenticate 헤더와 인증 방법 설명
-403(Forbidden): 서버가 요청을 이해했지만 승인을 거부함, 주로 인증 증명은 있지만, 접근 권한이 불충분한 경우
-404(Not Found): 요청 리소스를 찾을 수 없음(진짜 서버에 없거나 권한이 부족해서 숨길때도 사용가능)
5xx(서버 오류)
-서버 문제로 오류 발생
-서버에 문제가 있기 때문에 재시도하면 성공 가능성 있음(DB 복구)
-500(Internal Server Error): 서버 문제로 오류 발생, 애매하면 500 오류
-503(Service Unavailable)
-서버가 일시적인 과부하 또는 예정된 작업으로 잠시 요청 처리 불가
-Retry-After 헤더 필드로 얼마뒤에 복구되는지 보낼수도 있음
'웹 프로그래밍 > HTTP' 카테고리의 다른 글
HTTP 헤더(2) (0) | 2023.02.26 |
---|---|
HTTP 헤더(1) (0) | 2023.02.26 |
HTTP 메서드 활용 (0) | 2023.02.24 |
HTTP 메서드 (0) | 2023.02.22 |
HTTP (0) | 2023.02.22 |