HTTP 상태코드
클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능
너무 많아서 사용하는건 그냥 케바케
Informational ( 1XX )
요청이 수신되어 처리중 (안씀)
Successful ( 2XX )
요청 정상 처리
200 (OK) | 성공 (그냥 200만 쓰는 경우도 많음) |
201 (Created) | 요청 성공해서 새로운 리서스 생성.. POST 요청 → 생성ㅇㅋ |
202 (Accepted) | 요청이 접수는 됏는데 처리는 X .. 배치 처리가 필요한 경우! (잘 안씀) |
204 (No Content) | 요청은 성공했지만, 응답 페이로드 본문에 보낼 데이터가 없음. (save기능 같은거 .. 저장해도 그냥 성공 여부만 필요한 경우) |
Redirection ( 3XX )
요청을 완료하려면 추가 행동이 필요
3XX 응답 결과에 Location 헤더가 있으면 해당 위치로 리다이렉트
url이 바꼈는데 이 전 url로 들어왔을 때 바뀐 url로 리다이렉트
(1) 영구 리다이렉션
특정 리소스의 url이 영구적으로 변경되었을 경우
301 (Moved Permanetly) | 리다이렉트 요청이 GET으로 변하고 본문이 제거될 수 있음 |
308 (Permanent Redirect) | 301과 기능 거의 같음. 단, 요청 메서드, 본문 유지함 |
301 같은 경우는 POST로 등록하려고 했는데 ..
서버에서 301과 함께 바뀐 url 헤더에 넣어서 보냄
헤더 속 url 을 GET으로 보내고 메세지 바디가 없어짐
즉, 다시 처음부터 등록 진행해야함 (새로운 폼 화면)
308 같은 경우는 POST로 등록하려고 했는데 ..
서버에서 308과 함께 바뀐 url 헤더에 넣어서 보냄
POST 유지하고 내용도 함께 보냄
하지만 url이 바꼈다는 건 거의 구조도 바뀐거니까 대부분 301을 씀
(2) 일시 리다이렉션
일시적으로 변경
예를 들면 주문 완료 후 주문 내역 화면으로 이동.
나중엔 다른 화면으로 이동할수도 있음 (PRG)
302 (Found) | 리다이렉트시 요청 메서드가 GET으로 변경하고 본문이 제거될 수도 있음 (명확하지 않음) |
307 (Temporary Redirect) | 302와 비슷. 대신 요청 메서드와 본문 유지 |
303 (See Other) | 302와 비슷. 대신 무조건 GET으로 변경 (명확함) |
PRG (Post/Redirect/Get)
POST로 주문 후에 웹 브라우저를 새로고침하면 다시요청하여 중복 주문이 될 수 있음.. 😨
그래서 POST로 주문하면 주문 결과 화면을 GET 메서드로 리다이렉트
그래서 새로고침해도 결과화면 GET 조회 반복
(3) 특수 리다이렉션
결과 대신에 캐시를 사용
300 (Multiple Choices) | 안씀 |
304 (Not Modified) | 캐시를 목적으로 사용. 클라이언트에게 리소스가 수정되지 않았음을 알려줌. |
따라서 클라이언트는 로컬 PC에 저장된 캐시를 재사용함.
즉, 캐시로 리다이렉트 함
로컬 캐시를 사용해야해서 응답에 메시지 바디 포함X
Client Error ( 4XX )
클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음
이미 잘못 요청하고 있어서 재시도해도 실패함
400 (Bad Request) | 클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할 수 없음 요청 구문, 파라미터, API 스펙이 안맞을 때 |
401 (Unauthorized) | 클라이언트가 해당 리소스에 대한 인증이 필요함 (로그인 실패) |
403 (Forbidden) | 승인을 거부, 권한이 불충분할 때 |
404 (Not Found) | 요청한 리소스가 서버에 없을 때 |
인증과 인가
인증 (Authentication) : 본인이 누구인지 확인 (로그인)
인가 (Authorization) : 권한부여 (admin)
Server Error ( 5XX )
서버 오류, 서버가 정상 요청을 처리하지 못함
똑같은 요청을해도 서버에 따라 성공할 수 있음
500 (Internal Server Error) | 서버 내부의 문제 |
503 (Service Unavailable) | 서비스 이용 불가. 일시적인 과부하 또는 예정된 작업 |
앵간하면 500대 에러는 없도록 하자 ..
500 에러는 무조건 서버 관련된 것으로!
참고 강의 : https://taylog.tistory.com/203
'🧠 저장 > Http' 카테고리의 다른 글
HTTP 헤더 일반 헤더와 캐시 조건부 요청 헤더 간단 정리 (0) | 2024.02.23 |
---|---|
HTTP API 설계 개념 간단 정리 (0) | 2024.02.17 |
HTTP 메서드 종류, 속성 간단 정리 (0) | 2024.02.14 |
HTTP 특징, 구조 간단 정리 (0) | 2024.02.11 |
웹 브라우저 요청 흐름 간단 정리 (0) | 2024.02.08 |