[Web] Http Status Code
2023. 10. 27. 13:22ㆍStudy/Computer Science
클라우드 환경에서 Http API를 통해 통신하는 것이 대부분임
이때, 응답 상태 코드를 통해 성공/실패 여부를 확인할 수 있으므로 API 문서를 작성할 때 꼭 알아야 할 것이 HTTP status code이다.
1️⃣10X : 정보 확인
2️⃣ 20X : 통신 성공
상태코드 | 이름 | 의미 |
200 | OK | 요청 성공(GET) |
201 | Create | 생성 성공(Post) |
202 | Accepted | 요청 접수O, 리소스 처리X |
204 | No Contents | 요청 성공O, 내용 없음 |
202코드는 주로 비동기 처리에서 사용되며, 클라이언트에게 요청이 성공적으로 수신되었으나 서버에서 즉시 처리되지 않고 백그라운드에서 처리될 예정임을 알려줍니다. 이를 통해 클라이언트는 요청이 수신되었음을 알 수 있으나, 요청의 최종 결과에 대한 정보는 제공받지 못합니다.
3️⃣ 30X : 리다이렉트
상태코드 | 이름 | 의미 |
300 | Multiple Choice | 요청 URI에 여러 리소스가 존재 |
301 | Move Permanently | 요청 URI가 새 위치로 옮겨감 |
304 | Not Modified | 요청 URI의 내용이 변경X |
301 응답은 클라이언트에게 원래의 URL을 더 이상 사용하지 않고 새 URL을 사용하라는 지시를 제공합니다. 이 때, 서버는 'Location' 헤더에 새 URL을 제공하여 클라이언트가 이후의 요청을 새 URL로 보낼 수 있도록 합니다.
예를 들어, 웹사이트를 새 도메인으로 이전했을 때 301 상태 코드를 사용할 수 있습니다. 이 경우, 기존 도메인으로 들어오는 모든 요청을 새 도메인으로 영구적으로 리디렉션하여, 사용자가 자동으로 새 웹사이트를 방문할 수 있도록 합니다.
304 응답은 'Not Modified'를 의미합니다. 이 코드는 클라이언트가 가지고 있는 캐시된 버전이 여전히 최신인 경우에 서버가 반환하는 응답입니다.
클라이언트가 서버에게 특정 리소스의 최신 버전을 요청할 때, 만약 클라이언트가 가진 버전이 이미 최신이라면 서버는 전체 리소스를 다시 보내는 대신 304 상태 코드를 반환합니다. 이를 통해 불필요한 네트워크 대역폭의 사용을 줄일 수 있습니다.
이러한 동작은 주로 웹 브라우저와 같은 클라이언트가 'If-Modified-Since' 또는 'If-None-Match' 같은 조건부 HTTP 헤더를 통해 구현됩니다. 이 헤더들은 서버에게 '만약 리소스가 마지막으로 접근한 이후로 수정되지 않았다면, 304 상태 코드를 반환하라'는 메시지를 보냅니다.
4️⃣ 40x : 클라이언트 오류
상태코드 | 이름 | 의미 |
400 | Bad Request | 잘못된 문법으로 인하여 서버가 요청하여 이해할 수 없음을 의미 |
401 | Unauthorized | 인증 오류 |
403 | Forbidden | 권한 밖의 접근 시도 |
404 | Not Found | 요청 URI에 대한 리소스 존재X |
405 | Method Not Allowed | API에서 정의되지 않은 메소드 호출 |
406 | Not Acceptable | 처리 불가 |
408 | Request Timeout | 요청 대기 시간 초과 |
409 | Conflict | 모순 |
429 | Too many request | 요청 횟수 상한 초과 |
5️⃣ 50X : 서버 오류
상태코드 | 이름 | 의미 |
500 | Internal Server Error | 서버 내부 오류 |
502 | Bad Gateway | 게이트웨이 오류 |
503 | Service Unavailable | 서비스 이용 불가 |
504 | Gateway Timeout | 게이트웨이 시간 초과 |
'Study > Computer Science' 카테고리의 다른 글
[DB]SQL vs NOSQL (1) | 2023.10.30 |
---|---|
[DB] SQL Injection (0) | 2023.10.27 |
[DB] JOIN (0) | 2023.10.27 |
[DB]Key (0) | 2023.10.27 |
[Web] Http Request Methods (0) | 2023.10.27 |