TECH
HTTP 상태코드
ssund
2023. 4. 17. 21:45
클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능
- 1xx(informational): 요청이 수신되어 처리중
- 2xx(Successful): 요청 정상 처리
- 3xx(Redirection): 요청을 완료하려면 추가 행동이 필요
- 4xx(Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음
- 5xx(Server Error): 서버오류, 서버가 정상 요청을 처리하지 못함
2xx
클라이언트의 요청을 성공적으로 처리
- 200 OK
- 201 Created
post 요청을 해서 서버에서 자원을 새로 생성하는 경우
응답헤더에 Location정보가 들어있을 수 있다. - 202 Accepted
요청 접수가 되었으나 처리가 완료되지 않았다.
배치 처리 같은 곳에서 사용한다. - 204 No Content
서버가 요청을 성공적으로 했지만, 응답 페이로드 본문에 보낼 데이터가 없는경우
Ex) 웹 문서 편집기에서 save버튼
3xx 리다이렉션
요청을 완료하기 위해 유저 에이전트의 추가 조치 필요
- 300 Multiple Choices
- 301 Moved Permanently
Url 변경되었을 때 - 302 Found
- 303 See Other
- 304 Not Modified
- 307 Temporary Redirect
- 308 Permanent Redirect
리다이렉션이란?
웹 브라우저는 3xx응답의 결과에 Location 헤더가 있으면, Location위치로 자동 이동(redirect)
리다이렉션 종류
- 영구 리다이렉션
특정 리소스의 URI가 영구적으로 이동
Ex) /members -> Users원래의 URL를 사용 x, 검색 엔진 등에서도 변경 인지- 301
리다이렉트 시 요청 메소드가 GET로 변하고, 본문이 제거될 수있다.
(입력했던 정보가 날라가서 다시 입력을 해야할 수 있다.) - 308
301과 기능은 같다.
리다이렉트시 요청 메서드와 본문 유지
- 301
- 301, 308 상태코드
- 일시 리다이렉션
리소스의 URI가 일시적으로 변경
Ex) 주문 완료 후 주문 내역 화면으로 이동
검색 엔진 등에서 URL을 변경하면 안됨
PRG(Post/Redirect/Get) - post로 주문후 브라우저 새로고침 시 중복주문 방지- 302
리다이렉트 시 요청 메소드가 GET로 변하고, 본문이 제거될 수있다.
많이 사용하는 상태코드 이다. - 307
리다이렉트 시 요청 메소드와 본문 유지 - 303
리다이렉트 시 요청 메소드가 GET로 변4경
- 302
- 특수 리다이렉션
결과 대신 캐시를 사용- 304
캐시를 목적으로 사용
클라이언트에게 리소스가 수정되지 않았음을 알려준다.
- 304
4xx
클라이언트 오류
- 400 Bad Request
- 클라이언트가 잘못요청을 해서 서버가 요청을 처리 할 수없음
- 401 Unauthorized
인증 되지 않음
401 오류 발생 시 응답에 WWW-Authenticate헤더와 함께 인증 방법을 설명 - 403 Forbidden
서버가 요청을 이해했지만, 승인을 거부
인증 자격증명은 있지만, 접근권한이 불충분한 경우 발생한다. - 404 Not Found
요청 리소스를 찾을 수 없음
5xx
서버오류
- 500 Internal Server Error
서버 문제로 오류 발생 - 503 Service Unavailable
서비스 이용불가
서버가 일시적인 과부하 또는 예정된 작업으로 잠시 요청을 처리 할 수없는 케이스