HTTP의 Status 코드에 대해 설명해보세요
1xx: 요청이 수신되어 처리중
2xx: 요청 정상 처리
3xx: 리다이렉션 처리
4xx: 클라이언트 오류
5xx: 서버 오류
Status 2xx
Status 3xx(Redirection)
영구 리다이렉션 - 301, 308
리소스의 URI가 영구적으로 이동
원래의 URL 사용x
일시 리다이렉션 - 302,307,303
302,303은 거의 같다고 보면 된다. - 301과 영구, 일시 빼곤 같음
307은 리다이렉트시 요처 메서드와 본문이 유지된다. - 308과 영구, 일시 빼곤 같음
PRG: Post/Redirect/Get
Post로 주문한 후 웹 브라우저를 새로고침 하면
중복 주문이 들어갈 수 있다.
이를 해결하기 위해 PRG를 사용한다.
처음 POST로 접근하고 서버는 응답으로 redirect를 할 수 있게 새로운 URI를 보낸다.
그 다음 해당 URI로 자동 Redirect 요청(주문 결과 조회)을 서버로 보내고 이에 대한 응답을 받아
주문 결과 화면을 받는다.
새로고침 하더라도 결과 화면만 재 요청하게 된다.
기타 리다이렉션 - 304
캐시를 목적으로 사용한다.
클라이언트에게 리소스가 수정되지 않았음을 알려준다.
클라이언트는 로컬pc에 저장된 캐시에서 해당 리소스를 다시 사용한다. - 캐시로 리다이렉트
304는 응답에 메시지 바디가 있으면 안된다.
GET, HEAD 요청시 사용
4xx - Client Error
400 Bad Request
클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할 수 없음
401 Unauthorized
클라이언트가 해당 리소스에 대한 인증이 필요함
403 Forbidden
서버가 요청을 이해했지만 승인 거부 - 인증 자격은 있으나 접근 권한 불충분
예) 어드민 등급이 아닌 사용자가 로그인은 했지만, 어드민 등급의 리소스에 접근하는 경우
404 Not Found
요청 리소스를 찾을 수 없음 - 요청 리소스가 서버에 없음 or 권한이 부족한 리소스에 접근할 때 리소스 숨기는 용도
5xx - Server Error
서버 문제로 오류 발생
재시도 하면 될 수도 있음(클라이언트 문제가 아니기에)
500 Interneal Server Error
서버 문제로 오류 발생
503 Service Unavailable
서비스 이용 불가 - 일시적 과부하 or 예정된 작업으로 잠시 요청 처리 불가
Retry-After 헤더 필드로 얼마뒤에 복구 되는지 보낼 수도 있음
김영한 강사님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의에서 참고했습니다
'CS 개념정리 > 네트워크' 카테고리의 다른 글
[네트워크 CS 준비] 8. HTTP header 2 (1) | 2023.01.13 |
---|---|
[네트워크 CS 준비] 7. HTTP header 1 (0) | 2023.01.13 |
[네트워크 CS 준비] 5. HTTP method use (0) | 2023.01.13 |
[네트워크 CS 준비] 4. HTTP method (0) | 2023.01.13 |
[네트워크 CS 준비] 3.HTTP (0) | 2023.01.13 |