상태 코드
클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능
- `1xx (Informational)` : 요청이 수신되어 처리 중
- `2xx (Successful)` : 요청 정상 처리
- `3xx (Redirection)` : 요청을 완료하려면 추가 행동이 필요
- `4xx (Client Error)` : 클라이언트 오류, 잘못된 문법 등으로 서버가 요청 수행 불가
- `5xx (Server Error)` : 서버 오류, 서버가 정상 요청 처리 불가
2xx (Successful)
- 200 OK : 요청 성공
- 201 Created : 요청 성공해서 새로운 리소스 생성
- 202 Accepted : 요청 접수되었으나 처리가 완료되지 않음
- 204 No Content : 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음
(ex. 웹 문서 편집기에서 save 버튼)
보통 실무에서 `200`, `201` 까지만 사용한다.
3xx (Redirection)
응답 결과에 Location 헤더가 있으면, Location 위치로 자동 이동
HTTP/1.1 301 Moved Permanently
Location: /new-event
리다이렉션의 종류
- `영구 리다이렉션` : 특정 리소스의 URI 가 영구적으로 이동, 검색 엔진 최적화
- `일시 리다이렉션` : 일시적인 변경
> PRG (Post Redirect Get) : POST 후 새로고침으로 인한 중복 POST 방지 (새로고침해도 GET으로 조회)
(ex. 주문 완료 후 주문 내역 화면으로 이동)
- `특수 리다이렉션` : 결과 대신 캐시를 사용
> 참고 <
SEO(검색 엔진 최적화) 관점에서
영구 리다이렉션 : 원래 URL 랭킹을 새 URL 이 물려받아 랭킹 유지
일시 리다이렉션 : 원래 URL 로 유지할 가능성이 있음, 랭킹 유지 안 됨
영구 리다이렉션
- 301 Moved Permanently : 리다이렉트시 요청 메서드가 GET 으로 변하고, 본문이 제거 (확실 X)
- 308 Permanent Redirect : 리다이렉트시 요청 메서드와 본문 유지
보통 실무에서 `301` 을 사용한다.
(영구적으로 URI 가 변경되면 내부적으로 전달되는 데이터가 다 바뀌는 경우가 많음)
일시 리다이렉션
- 302 Found : 리다이렉트시 요청 메서드가 GET 으로 변하고, 본문이 제거 (확실 X)
- 307 Temporary Redirect : 리다이렉트시 요청 메서드와 본문 유지
- 303 See Other : 리다이렉트시 요청 메서드가 GET 으로 변경 (확실 O)
보통 실무에서 `302` 를 사용한다.
특수 리다이렉션
- 304 Not Modified
: 캐시로 리다이렉트함
: 클라이언트에게 리소스가 수정되지 않았음을 알려주어 로컬 PC에 저장된 캐시를 재사용
: 응답에 메시지 바디를 포함 X (로컬 캐시가 제대로 동작하기 위함)
: 조건부 GET, HEAD 요청 시 사용
실무에서 `304`는 많이 사용한다.
4xx (Client Error)
오류의 원인이 클라이언트에 있고, 이미 잘못된 요청이기 때문에 똑같은 재시도가 실패
- 400 Bad Request
: 클라이언트가 잘못된 요청을 해서 서버가 요청 처리 불가
: 클라이언트는 요청 내용을 다시 검토하고, 보내야 함
- 401 Unauthorized
: 클라이언트가 해당 리소스에 대한 인증이 필요함
: 응답에 WWW-Authenticate 헤더와 인증 방법을 설명
- 403 Forbidden
: 서버가 요청을 이해했지만 승인 거부
: 인증 자격 증명은 있지만, 접근 권한이 불충분한 경우
- 404 Not Found
: 요청 리소스가 서버에 없음
: 보안적인 이유로 해당 리소스 존재를 숨기고 싶은 경우
5xx (Server Error)
오류의 원인이 서버에 있고, 똑같은 재시도가 성공할 수 있음
- 500 Internal Server Error
: 서버 문제로 오류 발생, 애매하면 사용
- 503 Service Unavailable
: 서비스 이용 불가
: 서버가 일시 과부하 또는 예정된 작업으로 잠시 요청을 처리할 수 없음
: Retry-After 헤더 필드로 얼마 뒤에 복구되는지 보낼 수 있음
출처 | HTTP 웹 기본 지식(김영한) - 인프런
'💠기타 > 컴퓨터 과학 (CS)' 카테고리의 다른 글
[HTTP] 쿠키와 세션은 무엇일까 ?? (3) | 2025.03.05 |
---|---|
[HTTP] HTTP 헤더는 어떠한 것들이 있을까? (0) | 2025.03.04 |
[HTTP] 데이터를 전송하는 방법과 URI 설계 개념 (컬렉션/스토어, 컨트롤 URI) (1) | 2025.03.03 |
[HTTP] 무상태 프로토콜, HTTP 메시지 구조, HTTP 메서드에 대하여 ! (0) | 2025.03.03 |
[컴파일러] Tokenizer, Lexer, Parser에 대해 알아보자 (0) | 2024.09.02 |