티스토리 뷰
상태코드 (Status Code)
2xx
- 상세설명
- 클라이언트의 요청을 처리함
- 200 (OK)
- 요청 성공
- Response : "HTTP/1.1 200 OK"
HTTP/1.1 200 OK
Content-Type : application/json
Content-Length : 29
{
"name" : "pp",
"count" : 20
}
- 201 (Created)
- 요청 성공해서 새로운 리소스가 생성됨
HTTP/1.1 200 OK
Content-Type : application/json
Content-Length : 29
Location: /main/100
{
"name" : "pp",
"count" : 20
}
- 202 (Accept)
- 요청은 되었으나, 처리가 완료되지 않음
- 204 (No Content)
- 서버가 요청에 성공적으로 수행했지만, 응답 본문에 보낼 데이터가 없음
3xx
- 상세설명
- 리다이렉션 (Location 필드가 있으면, 해당 위치로 자동 이동)
- 요청을 완료하기 위해 추가 조치 필요
- 리다이렉션 종류
- a) 영구 리다이렉션
- 특정 리소스의 URI가 영구적으로 이동
- b) 일시 리다이렉션
- 일시적으로 이동 후 처리가 완료되면 원래 URI로 이동
- c) 특수 리다이렉션
- 결과 대신해서 캐시를 사용
- a) 영구 리다이렉션
a) 영구 리다이렉션 ( 새로고침 -> 리다이렉션된 URL로 이동 )
- 301
- 과정
- 클라이언트 : POST 요청
- 서버: 301 응답
- 클라이언트 : (자동) 해당 LOCATION 으로 이동 ( method : post -> get 으로 변경 )
- 리다이렉션 되는 과정(POST -> GET)에서 처음 POST에 존재하던 message body 내용이 제거 될 수 있음 ( 확정 x )
- 과정
- 308
- 과정
- 클라이언트 : POST 요청
- 서버 : 308 응답
- 클라이언트 : (자동) 해당 LOCATION으로 이동 ( method : post -> post 유지 )
- 리다이렉션 되는 과정에서 message body가 유지됨
- 과정
b) 일시적인 리다이렉션 ( 새로고침 -> 원래 URL로 이동 )
- 302
- 과정
- 클라이언트 : POST 요청
- 서버 : 302 응답
- 클라이언트 : (자동) 일시적으로 해당 LOCATION 으로 요청 ( method : post -> get으로 변경 )
- 리다이렉션 되는 과정에서 message body 날아감 ( 확정 x , 그럴 확률이 있음 )
- 과정
- 307
- 과정
- 클라이언트 : POST 요청
- 서버 : 307 응답
- 클라이언트 : (자동) 일시적으로 해당 LOCATION 으로 요청 ( method : post -> post 유지 )
- 리다이렉션 되는 과정에서 message body 및 요청 method 유지
- 과정
- 303
- 과정
- 클라이언트 : POST 요청
- 서버 : 303 응답
- 클라이언트 : (자동) 일시적으로 해당 LOCATION으로 요청 ( method : post -> get으로 변경 )
- 리다이렉션시, 요청 메서드가 GET으로 변경 (확정)
- 과정
302와 303은 유사하나, 302가 애매한 처리를 보여서 303으로 확실하게 한 것
- 현재 권고되는 응답코드는 "307, 303" 이다.
POST 유지시 문제점
- POST는 멱등이 안되므로, 새로고침시 중복 처리가 일어날 수 있음 (post -> post 유지)
- GET으로 변경하는 부분이 필요 ( PRG -> Post/Redirect/Get)
- 303 또는 301로 사용하는 것이 권장됨
c) 기타 리다이렉션
- 304 (Not Modified)
- 캐시를 목적으로 사용
- 리소스 (자원) 자체가 변경이 없음 ( -> 캐시 이용)
- 304 응답은 message body를 포함하면 안됨 ( 로컬 캐시를 이용하므로 )
- 조건부 -> GET / HEAD 요청시 사용
4xx
- 상세설명
- 오류의 원인이 클라이언트에 있음
- 400 (Bad Request)
- 요청 구문, 메시지 오류
- 401 (Unauthorized)
- 클라이언트가 접근 권한이 없음 (인증되지 않음)
- 로그인 정보가 아닐때 사용됨
- 403 (Forvidden)
- 접근권한이 불충분할 경우 (admin 리소스에 접근)
- 404(Not Found)
- 리소스가 서버에 존재하지 않음
5xx
- 상세설명
- 서버 문제로 오류 발생
- 500 (Internal Server Error)
- 서버 내부 문제로 오류 발생
- 애매할경우 주로 사용됨
- 503 (Service Unavailable)
- 서버가 일시적인 과부하 또는 예정된 작업으로 서버 요청 처리 불가 상태
'백엔드 > HTTP' 카테고리의 다른 글
HTTP 헤더 #1 (0) | 2024.08.26 |
---|---|
HTTP 메서드 예시 (0) | 2024.08.26 |
HTTP 프로토콜 #2 ( Method ) (0) | 2024.08.23 |
HTTP 프로토콜 #1 (0) | 2024.08.23 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 버블정렬
- 정렬
- 알고리즘
- 검증
- bean
- JDBC
- Spring
- 포트폴리오
- 타입변환
- HTML5
- JSON
- 티스토리챌린지
- 게시판
- Java
- DFS
- SQL
- 예외처리
- 게시판 프로젝트
- BFS
- 클래스
- 기술면접
- 우선순위 큐
- 코딩테스트
- 백준
- stack
- 오블완
- db
- 이진탐색
- Thymeleaf
- 깊이우선탐색
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함