HTTP의 상태 코드는 클라이언트가 보낸 HTTP 요청이 성공했는지 실패했는지를 서버에서 알려주는 숫자 코드다.
HTTP 상태 코드는 3자리 숫자로 이루어져 있으며, 총 100 ~ 500번대까지 존재한다. 그리고 각 상태 코드의 첫 번째 자리는 최상위 코드가 되어 다음과 같이 5개의 그룹으로 나뉘어 관리된다.
1XX : 요청이 수신되어 처리 중
2XX : 요청 정상 처리
3XX : 요청을 완료하려면 추가 행동이 필요
4XX : 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음
5XX : 서버 오류, 서버가 정상적으로 요청을 처리하지 못함
1XX (정보 전달)
- 100 Continue (계속)
요청자는 요청을 계속해야 한다. 서버는 이 코드를 제공하여 요청의 첫 번째 부분을 받았으며 나머지를 기다리고 있음을 나타낸다. - 101 Switching Protocols (프로토콜 전환)
요청자가 서버에 프로토콜 전환을 요청했으며 서버는 이를 승인하는 중이다. - 102 Processing (처리)
이 응답 코드는 서버가 요청을 수신하였으며 이를 처리하고 있지만, 아직 제대로 된 응답을 알려줄 수 없음을 알려준다.
2XX (성공)
- 200 OK (성공)
서버가 요청을 제대로 처리했다는 뜻이다. 이는 주로 서버가 요청한 페이지를 제공했다는 의미로 쓰인다. - 201 Created (작성됨)
성공적으로 요청되었으며 서버가 새 리소스를 작성했다. - 202 Accepted (허용됨)
서버가 요청을 접수했지만 아직 처리하지 않았다. - 203 Non-Authoritative Information (신뢰할 수 없는 정보)
서버가 요청을 성공적으로 처리했지만 다른 소스에서 수신된 정보를 제공하고 있다. - 204 No Content (콘텐츠 없음)
서버가 요청을 성공적으로 처리했지만 콘텐츠를 제공하지 않는다. - 205 Reset Content (콘텐츠 재설정)
서버가 요청을 성공적으로 처리했지만 콘텐츠를 표시하지 않는다. 204 응답과 달리 이 응답은 요청자가 문서 보기를 재설정할 것을 요구한다.(예 : 새 입력을 위한 양식 비우기 등)
3XX (리다이렉션 완료)
- 300 Multiple Choices (복수 응답)
서버가 요청에 따라 여러 조치를 선택할 수 있다. 서버가 사용자 에이전트에 따라 수행할 작업을 선택하거나, 요청자가 선택할 수 있는 작업 목록을 제공한다. - 301 Moved Permanently(영구 이동)
요청한 페이지를 새 위치로 영구적으로 이동했다. GET 또는 HEAD 요청에 대한 응답으로 이 응답을 표시하면 요청자가 자동으로 새 위치로 전달된다. - 302 Found (임시 이동)
현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만 요청자는 향후 요청 시 원래 위치를 계속 사용해야 한다. - 303 See Other (기타 위치 보기)
요청자가 다른 위치에 별도의 GET 요청을 하여 응답을 검색할 경우 서버는 이 코드를 표시한다. HEAD 요청 이외의 모든 요청을 다른 위치로 자동으로 전달한다. - 304 Not Modified (수정되지 않음)
마지막 요청 이후 요청한 페이지는 수정되지 않았다. 서버가 이 응답을 표시하면 페이지의 콘텐츠를 표시하지 않는다. 요청자가 마지막으로 페이지를 요청한 후 페이지가 변경되지 ㅇ낳으면 이 응답을 표시하도록 서버를 구성해야 한다.
4XX (클라이언트 오류)
- 400 Bad Request (잘못된 요청)
잘못된 문법으로 인하여 서버가 이해할 수 없음을 의미 - 401 Unauthorized (권한 없음)
인증이 필요한 리소스에 인증 없이 접근할 경우 발생. 이 응답 코드를 사용할 때에는 반드시 브라우저에 어느 인증 방식을 사용할 것인지 보내야 한다. 단순히 권한이 없는 경우 402 대신 403을 사용해야 한다. - 402 Payment Required (결제 필요)
결제가 필요한 리소스에 결제 없이 접근했을 경우 발생. 디지털 결제 시스템에 사용하기 위하여 만든 코드지만 사용되고 있지 않다. - 403 Forbidden (금지됨)
서버가 요청을 거부할 때 발생한다. 관리자가 해당 사용자를 차단했거나 서버에 index.html이 없는 경우에도 발생할 수 있다. 혹은 권한이 없을 때에도 발생한다. - 404 Not Found (찾을 수 없음)
찾는 리소스가 없다는 뜻으로, 가장 흔하게 볼 수 있는 오류 코드이다. - 408 Request Timeout (요청 시간 초과)
요청 중 시간이 초과되었을 때 사용하는 코드
5XX (서버 오류)
- 500 Internal Server Error (내부 서버 오류)
서버에 오류가 발생해 작업을 수행할 수 없을 때 사용 - 501 Not Implemented (요청한 기능 미지원)
서버가 요청을 수행하는데 필요한 기능을 지원하지 않는 경우 사용된다. - 502 Bad Gateway (게이트웨이 불량)
게이트웨이가 연결된 서버로부터 잘못된 응답을 받았을 때 사용된다. - 503 Service Temporarily Unavailable (일시적으로 서비스 이용 불가)
주로 웹서버 등이 과부하로 다운되었을 때 볼 수 있다. - 504 Gateway Timeout (게이트웨이 시간 초과)
게이트웨이가 연결된 서버로부터 응답을 받을 수 없었을 때 사용된다.
참조
https://velog.io/@chlgustjr/HTTP-%EC%83%81%ED%83%9C-%EC%BD%94%EB%93%9C
https://namu.wiki/w/HTTP/%EC%9D%91%EB%8B%B5%20%EC%BD%94%EB%93%9C#s-4
'멋진 개발자 > Network' 카테고리의 다른 글
개발자 성장 기록 52 - IPv4, IPv6 (0) | 2024.04.19 |
---|---|
개발자 취준 기록 38 - OSI 7계층 (0) | 2024.04.02 |
개발자 취준 기록 32 - HTTP Method (0) | 2024.03.27 |
[항해 취업코스] 개발자 취준 기록 25 - HTTP & HTTPS (0) | 2024.03.20 |
[항해 취업코스] 개발자 취준 기록 24 - 쿠키와 세션 (0) | 2024.03.19 |