서버는 클라이언트의 요청을 처리한 후, 그 결과를 숫자 코드로 알려준다.
이 숫자가 바로 HTTP 상태 코드(Status Code)이다.
상태 코드는 세 자리 숫자로 구성되며, 첫 번째 숫자에 따라 응답의 성격이 분류된다.
| 1xx | 정보(Informational) | 요청을 받았으며, 계속 처리 중 |
| 2xx | 성공(Success) | 요청이 정상적으로 처리됨 |
| 3xx | 리다이렉션(Redirection) | 추가 작업 필요 (다른 위치로 이동 등) |
| 4xx | 클라이언트 오류(Client Error) | 클라이언트의 잘못된 요청 |
| 5xx | 서버 오류(Server Error) | 서버 측의 문제로 요청 처리 실패 |
| 100 Continue | 계속 진행하라는 의미 | 클라이언트가 요청을 계속 보내도 됨 |
| 200 OK | 성공 | 요청이 성공적으로 처리됨 |
| 201 Created | 생성됨 | POST 요청 등으로 리소스가 새로 생성됨 |
| 204 No Content | 내용 없음 | 응답 바디 없이 성공 (삭제 등에서 사용) |


| 301 Moved Permanently | 영구 이동 | 요청한 자원이 새 위치로 영구 이동됨 |
| 302 Found | 임시 이동 | 자원이 임시로 다른 위치로 이동됨 (원래 위치 유지) |
| 304 Not Modified | 변경 없음 | 캐시된 자원 사용 가능, 서버 자원 변경 없음 |

POST로 주문후에 웹 브라우저를 새로고침하면?
• 새로고침은 다시 요청
• 중복 주문이 될 수 있다
• 그래서 PRG를 사용하면 중복주문X

자동 리다이렉션시에 GET으로 변해도 되면 그냥 302를 사용해도 큰 문제 없음.
| 400 Bad Request | 잘못된 요청 | 문법 오류 또는 파라미터 오류 |
| 401 Unauthorized | 인증 필요 | 로그인이 필요함 (인증 안 됨) |
| 403 Forbidden | 금지됨 | 서버가 요청을 거부 (권한 없음) |
| 404 Not Found | 찾을 수 없음 | 요청한 리소스가 존재하지 않음 |
| 500 Internal Server Error | 내부 서버 오류 | 서버의 예기치 못한 오류 |
| 502 Bad Gateway | 잘못된 게이트웨이 | 게이트웨이/프록시 서버가 잘못된 응답을 수신 |
| 503 Service Unavailable | 서비스 이용 불가 | 서버가 과부하 또는 점검 중으로 응답 불가 |