HTTP 상태 코드란?
엄밀히 말하면 HTTP 응답의 상태 코드 서버 응답의 의미를 나타내는 3비트 디지털 코드 특정 HTTP 요청이 성공적으로 완료되었는지 여부를 나타냅니다HTTP 응답
응답 메시지는 세 가지 주요 유형의 정보로 나눌 수 있다
- 아이디 라인
- HTTP 응답 헤드
- HTTP 응답체
상태 코드는 제목의 첫 줄에 있습니다
상태 코드는 머리글의 첫 번째 행, 즉 상태 행에 있습니다.
HTTP/1.1 200 OK
Date: Sat, 22 Feb 2020 08:09:30 GMT
Content-Type: application/json; charset=utf-8
Connection: keep-alive
Server: nginx
ETag: "e287c729017cc9785487098b6b103af6"
Cache-Control: max-age=0, private, must-revalidate
X-UA-Compatible: IE=Edge,chrome=1
X-Runtime: 0.003487
상태 줄에는 프로토콜과 텍스트 구문, 그리고 여기에서 토론한 상태 코드가 포함되어 있습니다.
HTTP/1.1 200 OK
프로토콜: HTTP/1.1 상태 코드: 200 텍스트 구문: OK제목은 더 세분화되지만 이 예에서는 세분화되지 않는다.
상태 코드는 다섯 종류로 나뉜다
100s= 정보 응답
200s= 응답 성공
300s = 리디렉션
400s= 클라이언트 오류
500s = 서버 오류
다음은 전형적인 상태 코드의 요약이다.
100번 메시지 답장
는 계속 처리 중이라고 밝혔다. 클라이언트는 계속 요청하거나 서버의 지시에 따라 프로토콜을 업데이트하고 다시 발송할 수 있다 HTTP/1.0 프로토콜에 1x 숫자의 정의가 없기 때문에 100을 자주 사용하지 않습니다.
100 계속
서버에서 요청을 거부하지 않았습니다.클라이언트는 계속 요청할 수 있습니다.
101 스위치 프로토콜
서버에서 프로토콜 전환을 요청하고 있습니다.
200개 단위의 성공적인 응답
가장 일반적인 상태 코드를 성공적으로 반환했습니다.
요청한 작업이 성공하고 지정된 데이터를 검색했습니다. GET: 바디에 리소스 포함 PUT, POST: 주체는 조작 결과를 포함한다201 창립
POST, PUT: 요청이 성공하고 리소스가 생성됨 POST의 경우 응답의 위치 헤드에 URI 포함
신규 사용자 등록, 이미지 업로드, 데이터베이스 테이블 추가 등 주체는 일반적으로 새로 만든 자원을 포함하지만 특정한 내용을 포함할 필요가 없다.202 수락
요청이 수락되었지만 아직 처리되지 않았습니다. 파일 형식 변환, 밀어넣기 알림 요청, 배치 등 서버에서 비동기 처리 시 반환204 컨텐트 없음
응답 주체가 비어 있을 때 되돌아옵니다. DELETE로 데이터 삭제 시 반환
POST를 사용하여 양식 컨텐트를 제출할 때 반환되지만 화면이 업데이트되지 않았습니다. PUT 또는 PATCH로 데이터를 올바르게 업데이트한 경우
일부 사람들은 삭제를 제외한 다른 용도로 사용해서는 안 된다고 생각한다.205 컨텐츠 재설정
사용자 프록시 화면을 재설정할 때 돌아갑니다. As 204, 응답 바디가 없습니다.300개 이상의 선택 방향 재지정
300개 이상의 옵션
는 한 요청에 여러 응답이 있음을 나타낸다. 옵션에 링크된 HTML 중 하나를 사용자 에이전트 또는 사용자에게 표시합니다.301 영구 이전
요청한 리소스의 URL이 영구적으로 변경되었습니다. 예를 들어 웹 사이트가 이동하거나 HTTP에서 HTTPS로 방향을 바꾼다. 위치 제목은 이동할 URL을 나타냅니다.302 검색
요청한 리소스의 URL이 임시로 변경되었습니다. 대상 URL이 위치 제목에 표시됩니다. 실제로는 303에 사용할 수 있습니다. 307로 재정의되었고 지금은 폐기되었습니다.303 다른
는 요청된 리소스를 다른 URI에서 읽어들일 수 있음을 나타냅니다. 위치 제목은 이동할 URL을 나타냅니다. 브라우저 양식의 게시물에 응답하기 위해 결과 페이지로 리디렉션합니다.307 임시 리디렉션
임시 리디렉션 이것은 302에 대한 재정의로 남용이 창궐했기 때문이다. Location 헤더는 사용자가 리디렉션한 URL을 표시합니다. 사용자 에이전트가 사용하는 HTTP 방법을 변경할 수 없습니다.308 영구 리디렉션
영구 리디렉션 301의 대량의 비표준적인 사용으로 인해 재정의되었다. 위치 제목은 이동할 URL을 나타냅니다. 사용자 에이전트는 HTTP 방법을 변경할 수 없습니다.400 클라이언트 오류
400개의 오류 요청
오류 요청 정의되지 않은 방법을 사용하거나 잘못된 매개 변수를 사용하는 등 잘못된 클라이언트 요청입니다. 올바른 클라이언트 오류를 나타내는 데 사용할 다른 상태 코드가 없을 때도 사용합니다.401 무단
인증 오류 로그인해야 하는 페이지의 ID 또는 암호가 잘못되었습니다. 요청에 필요한 권한 수여 헤더가 포함되지 않습니다. 영패가 기한이 지났거나 파손되었거나 무효입니다.403 금지
인증 오류 클라이언트가 사이트에 액세스할 수 없습니다. 예를 들어 클라이언트가 권한을 부여받지 않았기 때문에 서버의 응답이 거부되었습니다.
서버는 특정 IP 주소에서만 액세스할 수 있습니다. 401과 달리 고객은 여전히 인식할 수 있습니다.404를 찾을 수 없습니다.
요청한 자원이 없습니다. 네트워크에서 가장 흔히 볼 수 있는 오류 상태 코드 중 하나입니다. URI 자체가 존재하지 않거나 검색할 자원이 존재하지 않는지 확인하려면 더 많은 정보가 필요합니다. 403이 아닌 404로 되돌아와 권한이 부여되지 않은 클라이언트에게 자원의 존재를 숨기기도 한다.405 메서드는 허용되지 않습니다.
끝점이 있지만 HTTP 메서드는 허용되지 않습니다. GET를 통해 액세스할 수 있는 검색 API와 POST를 함께 사용하려는 경우
API에서 리소스 삭제를 금지하는 경우408 요청 시간 초과
요청이 지정된 시간 내에 완료되지 않았습니다. 크롬, Firefox 및 HTTP 사전 연결 기능을 사용하여 조회 속도를 높이는 다른 브라우저에 자주 사용된다. 회선 연결 속도가 느릴 때 발생한다.409 충돌
리소스 충돌 발생 시
기존 이메일 주소나 같은 ID로 사용자를 등록하려고 시도할 경우 비어 있지 않은 디렉터리를 삭제하거나 자원을 사용 중인 디렉터리로 이름을 바꾸려고 할 경우410이 없어졌다
요청한 내용이 서버에서 영구적으로 삭제되고 전송 주소가 없을 때. 는 404와 달리 내용이 존재했지만 존재하지 않았다는 뜻이다. 제한된 프로모션에 사용됩니다. 개인정보 보호(사용자가 삭제한 정보가 유지됨) 측면에서 사용자 정보를 처리하고 410으로 되돌아오는 API는 문제가 있는 것으로 간주될 수 있음≈ 사용자가 완전히 삭제되지 않았습니다).413 유효 하중이 너무 크다
는 요청 헤더나 본문이 서버 설정의 제한을 초과했음을 나타낸다. 서버는 접속을 해제하거나 허용된 크기를 초과하는 파일 업로드와 같은 오류 메시지를 서버에 보냅니다. 서버가 연결을 닫거나 헤더가 표시된 후에 다시 시도합니다.414, Uri가 너무 길어요.
클라이언트가 요청한 URI는 서버보다 더 길게 처리할 수 있습니다. 서버가 연결을 닫거나 헤더가 표시된 후에 다시 시도합니다.415 지원되지 않는 미디어 유형
서버는 요청 데이터의 미디어 유형(내용 유형)을 지원하지 않으며 서버가 요청을 거부했습니다. XML은 JSON 요청만 받는 API에 전송되거나 이미지 형식이 지원되지 않는 이미지를 업로드하려고 합니다.429 요청이 너무 많음
액세스 허용 한도를 초과하면 돌아옵니다. 2012년 RFC 6585에 정의된 새 상태 코드입니다. 특정 시간대에 속도 제한을 초과하는 요청이 대량으로 발송되었다(예를 들어 API 요청은 분당 60개로 제한됨).500 서버 오류
500 내부 서버 오류
서버 측에서 어떤 오류가 발생하여 응답이 정상적이지 않습니다.
- 오류 메시지 "오류"가 일반적으로 반환되므로 클라이언트가 해결할 수 없습니다.
- 다른 적절한 오류 코드가 없을 때도 사용합니다.
- 서버의 오류 로그를 통해 원인을 찾을 수 있습니다.
502 장애 게이트웨이
- 게이트웨이 또는 에이전트에 문제가 발생했습니다.
- 게이트웨이 역할을 하는 서버가 잘못된 응답을 받았습니다.
503 서비스를 사용할 수 없습니다.
- 서버에서 요청을 처리할 준비가 되지 않았습니다.
- 임시 하이트래픽 또는 유지 관리로 인해 서버가 종료되었습니다.
- 유지 보수의 경우 Retry After 헤더에 예상 재부팅 시간(초)이 포함될 수 있습니다.
504 게이트웨이 제한 시간
- 게이트웨이 역할을 하는 서버가 지정된 시간 동안 응답을 받지 못했습니다.
- 사이트 마이그레이션 등의 이유로 일시적인 DNS 예외일 수 있습니다.
505 HTTP 버전이 지원되지 않습니다.
- 서버에서 요청한 HTTP 프로토콜 버전을 지원하지 않습니다.
- 현재 프로토콜은 HTTP/2입니다.
- HTTP/2 개요 | 네트워킹 베이스 | 구글 개발자
참고 자료
Explanation of HTTP status codes