초보자를 위한 HTTP 상태 코드 설명

6325 단어

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

    좋은 웹페이지 즐겨찾기