HTTP Status Code
1. HTTP Status Code
- 공부를 하면서, 404, 200 등 세 자리 숫자로 이루어진 코드를 본 경험이 있는데, 이것이 무엇이며, 어떤 종류가 있는지 궁금하여 알아보았습니다.
- HTTP Status Code란 클라이언트가 보낸 HTTP 요청의 결과를 나타내는 세 자리 숫자로 이루어진 코드입니다.
- 각각의 Status Code는 특정한 의미를 가지며, 클라이언트와 서버 간의 통신에서 어떤 일이 발생하였는지 알려줍니다.
2. Status Code 구조
- 상태 코드(Status Code)는 다음과 같은 구조를 나타냅니다.
- 첫 번째 자리 숫자 (1xx, 2xx, 3xx, 4xx, 5xx) : 상태 코드의 일반적인 범주를 나타냅니다.
코드 | 의미 |
1xx | Informational (정보 전달) |
2xx | Successful (성공) |
3xx | Redirection (리디렉션) |
4xx | Client Error (클라이언트 오류) |
5xx | Server Error (서버 오류) |
3. Status Code 종류
- 그러면 더 자세히 어떤 상태 코드가 있으며, 무슨 의미인지 알아봅시다.
1xx
100 Continue
- 서버가 요청의 일부를 받았고 계속해서 나머지를 기다립니다.
- 이미 요청을 완료한 경우, 무시해도 되는 것을 알려줍니다.
2xx
200 OK
- 요청이 성공적으로 처리되었습니다.
- 성공의 의미는 GET, HEAD, POST, TRACE에 따라 달라집니다.
201 Created
- 요청이 성공적으로 처리되어, 새 리소스가 생성되었습니다.
- 주로 POST 메서드를 사용하여, 새로운 리소스를 생성하는 경우에 반환됩니다.
202 Accepted
- 요청은 접수하였지만, 처리가 완료되지 않았고 나중에 완료될 것임을 서버가 나타냅니다.
- 일반적으로 비동기적인 작업을 수행하는 경우에 이 상태 코드가 사용됩니다.
3xx
301 Moved Permanently
- 지정한 리소스가 새로운 URL로 이동하였습니다.
- 검색 엔진 및 브라우저 등은 이 상태 코드를 받으면, 해당 리소스의 새로운 위치로 자동으로 리디렉션합니다.
303 See Other
- 클라이언트가 원래의 요청을 완료한 후에 다른 위치의 리소스로 이동해야 함을 나타냅니다.
- 주로 POST 요청의 결과로 리디렉션을 할 때, 사용됩니다.
307 Temporary Redirect
- 클라이언트가 원래의 요청을 완료한 후에 임시로 다른 위치의 리소스로 이동해야 함을 나타냅니다.
- 리디렉션된 리소스를 GET 메서드를 사용하여, 가져와야 합니다.
4xx
400 Bad Request
- 클라이언트의 요청이 서버에 의해 이해되지 않거나 유효하지 않아서 처리할 수 없다는 것을 나타냅니다.
- 서버가 클라이언트의 요청을 처리할 수 없을 때 나타냅니다. 즉, 잘못된 구문, 누락된 필수 요소, 부적절한 요청 메시지 등을 포함할 때 발생할 수 있습니다.
401 Unauthorized
- 지정된 리소스에 대한 권한이 없음을 나타냅니다.
- 서버에 요청된 리소스에 엑세스하기 전에 사용자가 자신을 인증해야 하며, 제공된 자격 증명(ex: 사용자 명 or 암호)이 누락되었거나 부적절하거나 충분하지 않은 경우에 해당합니다.
403 Forbidden
- 지정한 리소스에 대한 엑세스가 금지되었습니다.
- 클라이언트가 인증은 받았지만, 해당 리소스에 대한 충분한 권한이 없는 경우 또는 서버가 다른 이유로 엑세스를 허용하지 않는 경우에 발생할 수 있습니다.
404 Not Found
- 클라이언트가 요청한 리소스를 서버에서 찾을 수 없음을 나타냅니다.
- 이는 클라이언트가 요청한 페이지, 문서 또는 다른 리소스가 서버에서 발견되지 않았다는 것을 나타냅니다.
5xx
500 Internal Server Error
- 서버가 클라이언트의 요청을 처리하는 동안, 예상치 못한 문제가 발생했음을 의미합니다.
- 서버 내부에서 무언가가 잘못되었을 때 또는 서버가 처리할 수 없는 상황에서 발생합니다.
501 Not Implemented
- 서버가 클라이언트의 요청을 이해하고 있지만, 해당 요청을 수행할 수 있는 기능이 구현되어 있지 않음을 나타냅니다.
- 서버가 클라이언트의 요청에 필요한 기능 or 메소드를 지원하지 않는 경우에 해당합니다.
502 Bad Gateway
- 게이트웨이 or 프록시 서버가 업스트림 서버로부터 유효한 응답을 수신하지 못했음을 나타냅니다.
- 일반적으로 게이트웨이 or 프록시 서버가 요청을 중계할 때, 업스트림 서버와의 통신에서 문제가 발생했거나 응답을 제대로 수산하지 못한 경우에 발생합니다.
4. 정리하며
- 지금까지 HTTP Status Code에 대해 알아보았습니다.
- 앞으로 코딩할 때, 지금 배운 것을 참고하여 코딩하면 더욱 수월할 것 같습니다.
'Computer Science' 카테고리의 다른 글
웹 서버(Web Server) (0) | 2024.05.11 |
---|---|
CI/CD (0) | 2024.04.16 |
DNS (Domain Name System) (0) | 2023.10.15 |
HTTP와 HTTPS (0) | 2023.09.23 |
인터넷 (Internet) (0) | 2023.08.20 |