HTTP는 애플리케이션 계층 프로토콜이지만 HTTP/2 버전은 2015년에 출시되었으며 주요 웹 브라우저 및 웹 서버에서 지원됩니다.
주요 기능은 다음과 같이 요약됩니다.
클라이언트/서버 모드를 지원합니다.
간단하고 빠릅니다. 클라이언트가 서버에 서비스를 요청할 때 요청 방법과 경로만 전송하면 됩니다. HTTP 프로토콜의 단순성으로 인해 HTTP 서버의 프로그램 크기는 작고 통신 속도는 매우 빠릅니다.
유연함: HTTP는 모든 유형의 데이터 개체 전송을 허용합니다. 전송되는 유형은 Content-Type으로 표시됩니다.
연결 없음: 연결 없음의 의미는 각 연결이 하나의 요청만 처리하도록 제한하는 것입니다. 서버는 클라이언트의 요청을 처리하고 클라이언트의 응답을 받은 후 연결을 끊습니다. 이 방법을 사용하면 전송 시간이 절약됩니다.
상태 비저장: HTTP 프로토콜은 상태 비저장 프로토콜입니다. Stateless는 프로토콜에 트랜잭션 처리를 위한 메모리 기능이 없음을 의미합니다. 상태가 없다는 것은 후속 처리에 이전 정보가 필요한 경우 다시 전송해야 하므로 연결당 전송되는 데이터 양이 증가할 수 있음을 의미합니다. 반면에 서버는 이전 정보가 필요하지 않을 때 더 빠르게 응답합니다. 이 문제를 해결하기 위해 웹 프로그램은 상태를 유지하기 위해 쿠키 메커니즘을 도입합니다.
또한, HTTP 요청 메시지와 응답 메시지는 시작 줄(요청 메시지의 경우 시작 줄은 요청 줄, 응답 메시지의 경우 시작 줄은 상태 줄), 메시지 헤더(선택 사항), 공백으로 구성됩니다. 줄(CRLF 줄만), 메시지 본문(선택 사항).
소프트웨어 테스터로서 일부 서버에서 반환되는 HTTP 상태의 의미를 이해하는 것이 중요합니다. 이러한 상태 코드를 이해해야만 작업에 도움이 될 수 있습니다.
응답 상태 코드
상태 코드는 세 자리로 구성됩니다. 첫 번째 숫자는 응답 유형을 정의하며 5개의 가능한 값을 갖습니다.
1xx: 표시 정보-요청이 수신되었으며 계속 처리되고 있음을 나타냅니다.
2xx: 성공--요청이 성공적으로 수신되고 이해되었으며 수락되었음을 나타냅니다.
3xx: 리디렉션 - 요청을 완료하려면 추가 작업을 수행해야 합니다.
4xx: 클라이언트 오류--요청에 구문 오류가 있거나 요청을 이행할 수 없습니다.
5xx: 서버 측 오류 - 서버가 합법적인 요청을 이행하지 못했습니다.
일반적으로 사용되는 상태 코드:
1xx - 정보 프롬프트
이 상태 코드는 임시 응답을 나타냅니다. 클라이언트는 일반 응답을 받기 전에 하나 이상의 1xx 응답을 받을 준비를 해야 합니다.
· 100 - 계속 초기 요청이 수락되었으며 클라이언트는 요청의 나머지 부분을 계속 보내야 합니다.
· 101 - 프로토콜 전환 서버는 클라이언트의 요청을 준수하고 다른 프로토콜로 변환합니다.
2xx - 성공
이 유형의 상태 코드는 서버가 클라이언트 요청을 성공적으로 수락했음을 나타냅니다.
· 200 - OK 모든 것이 괜찮습니다. GET 및 POST 요청에 대한 응답 문서가 이어집니다.
· 201 - 생성됨 서버가 문서를 생성했으며 위치 헤더는 해당 URL을 제공합니다.
· 202 - 수락 요청이 수락되었지만 처리가 완료되지 않았습니다.
· 203 - 신뢰할 수 없는 정보 문서는 정상적으로 반환되었으나 문서의 사본이 신뢰할 수 없는 정보를 사용했기 때문에 일부 응답 헤더가 정확하지 않을 수 있습니다.
· 204 - 콘텐츠 없음 새 문서가 없으므로 브라우저는 원본 문서를 계속 표시해야 합니다. 이 상태 코드는 사용자가 페이지를 정기적으로 새로 고치고 서블릿이 사용자의 문서가 충분히 최신인지 확인할 수 있는 경우 유용합니다.
· 205 - 콘텐츠 재설정 새로운 콘텐츠는 없지만 브라우저가 표시하는 콘텐츠를 재설정해야 합니다. 브라우저가 양식 입력 내용을 지우도록 강제하는 데 사용됩니다.
· 206 - 부분 콘텐츠 클라이언트가 Range 헤더와 함께 GET 요청(청크 요청)을 보냈고 서버가 이를 완료했습니다.
3xx - 리디렉션
클라이언트 브라우저는 요청을 이행하기 위해 추가 조치를 취해야 합니다. 예를 들어, 브라우저는 서버에서 다른 페이지를 요청하거나 프록시 서버를 통해 요청을 반복해야 할 수 있습니다.
· 300 - 다중 선택 고객이 요청한 문서는 반환된 문서에 나열된 여러 위치에서 찾을 수 있습니다. 서버가 기본 설정을 제안하려는 경우 위치 응답 헤더에 이를 표시해야 합니다.
· 301 - 영구적으로 이동됨 클라이언트가 요청한 문서가 다른 곳에 있고 새 URL이 Location 헤더에 제공되며 브라우저는 자동으로 새 URL에 액세스해야 합니다.
· 302 - 발견 301과 유사하지만 새 URL은 영구 URL이 아닌 임시 대체 URL로 간주되어야 합니다. HTTP 1.0의 해당 상태 메시지는 "임시 이동됨"입니다. 이 상태 코드가 발생하면 브라우저는 자동으로 새 URL에 액세스할 수 있으므로 유용한 상태 코드입니다. 이 상태 코드는 때때로 301과 같은 의미로 사용될 수 있습니다. 일부 서버는 301을 반환하고 다른 서버는 302를 반환합니다. 엄밀히 말하면 원래 요청이 GET인 경우에만 브라우저가 자동으로 리디렉션된다고 가정할 수 있습니다. 307을 참조하십시오.
· 303 - See Other는 원래 요청이 POST인 경우 Location 헤더에 지정된 리디렉션 대상 문서가 GET을 통해 추출되어야 한다는 점을 제외하면 301/302와 유사합니다.
· 304 - 수정되지 않음 클라이언트가 문서를 버퍼링하고 조건부 요청을 발행했습니다(일반적으로 클라이언트가 지정된 날짜보다 최신 문서만 원함을 나타내기 위해 If-Modified-Since 헤더 제공). 서버는 원래 버퍼링된 문서를 계속 사용할 수 있음을 클라이언트에게 알립니다.
· 305 - 프록시 사용 클라이언트가 요청한 문서는 Location 헤더(HTTP 1.1의 새로운 기능)에 지정된 프록시 서버를 통해 검색되어야 합니다.
· 307 - 임시 리디렉션은 302(찾음)와 동일합니다. 많은 브라우저는 원래 요청이 POST였더라도 실제로는 POST 요청에 대한 응답이 303인 경우에만 리디렉션할 수 있지만 302 응답으로 잘못 리디렉션합니다. 이러한 이유로 HTTP 1.1은 여러 상태 코드를 보다 명확하게 구분하기 위해 307을 추가했습니다. 303 응답이 발생하면 브라우저는 리디렉션된 GET 및 POST 요청을 따를 수 있고, 307 응답인 경우 브라우저는 GET 요청의 리디렉션만 따를 수 있습니다.
4xx - 클라이언트 오류
이러한 상태 코드는 요청에 문제가 발생하여 서버가 요청을 처리할 수 없음을 나타냅니다.
· 400 - 잘못된 요청 서버가 요청 구문을 이해하지 못합니다.
· 401 - 승인되지 않음 요청에 인증이 필요합니다. 로그인한 후 서버는 이 응답을 페이지에 반환할 수 있습니다. 응답에는 WWW-Authenticate 헤더가 포함되며 브라우저는 이에 따라 사용자 이름/비밀번호 대화 상자를 표시한 다음 적절한 Authorization 헤더를 입력한 후 다시 요청합니다. IIS는 오류의 보다 구체적인 원인을 나타내는 다양한 401 오류를 정의합니다. 이러한 특정 오류 코드는 브라우저에 표시되지만 IIS 로그에는 표시되지 않습니다.
· 401.1 - 로그인 실패.
· 401.2 - 서버 구성으로 인해 로그인이 실패했습니다.
· 401.3 - 리소스에 대한 ACL 제한으로 인해 승인되지 않았습니다.
· 401.4 - 필터 인증에 실패했습니다.
· 401.5 - ISAPI/CGI 애플리케이션 인증에 실패했습니다.
· 401.7 – 웹 서버의 URL 인증 정책에 따라 액세스가 거부되었습니다. 이 오류 코드는 IIS 6.0에만 해당됩니다.
· 403 - 금지됨 서버가 요청을 거부했습니다. 일반적으로 서버의 파일이나 디렉터리에 대한 권한 설정으로 인해 발생합니다. 액세스 금지: IIS는 오류의 보다 구체적인 원인을 나타내는 다양한 403 오류를 정의합니다.
· 403.1 - 실행 액세스가 금지되었습니다.
· 403.2 - 읽기 접근이 금지되었습니다.
· 403.3 - 쓰기 접근이 금지되었습니다.
· 403.4 - SSL이 필요합니다.
· 403.5 - SSL 128이 필요합니다.
· 403.6 - IP 주소가 거부되었습니다.
· 403.7 - 클라이언트 인증서가 필요합니다.
· 403.8 - 사이트 액세스가 거부되었습니다.
· 403.9 - 사용자가 너무 많습니다.
· 403.10 - 구성이 잘못되었습니다.
· 403.11 - 비밀번호 변경.
· 403.12 - 매핑 테이블에 대한 액세스가 거부되었습니다.
· 403.13 - 클라이언트 인증서가 취소되었습니다.
· 403.14 - 디렉터리 목록이 거부되었습니다.
· 403.15 - 클라이언트 액세스 권한이 초과되었습니다.
· 403.16 - 클라이언트 인증서를 신뢰할 수 없거나 유효하지 않습니다.
· 403.17 - 클라이언트 인증서가 만료되었거나 아직 유효하지 않습니다.
· 403.18 - 요청한 URL은 현재 응용 프로그램 풀에서 실행할 수 없습니다. 이 오류 코드는 IIS 6.0에만 해당됩니다.
· 403.19 - 이 응용 프로그램 풀에서는 클라이언트에 대해 CGI를 수행할 수 없습니다. 이 오류 코드는 IIS 6.0에만 해당됩니다.
· 403.20 - 여권 로그인에 실패했습니다. 이 오류 코드는 IIS 6.0에만 해당됩니다.
· 404 - 찾을 수 없음 서버가 요청한 웹 페이지를 찾을 수 없습니다. 예를 들어 서버에 존재하지 않는 페이지에 대한 요청인 경우 서버는 일반적으로 이 코드를 반환합니다.
· 404.0 - (없음) – 파일 또는 디렉터리를 찾을 수 없습니다.
· 404.1 - 요청한 포트에서 웹사이트에 접속할 수 없습니다.
· 404.2 - 이 요청은 웹 서비스 확장 프로그램 잠금 정책에 의해 차단됩니다.
· 404.3 - 이 요청은 MIME 매핑 정책에 의해 차단되었습니다.
· 405 - 메서드가 허용되지 않음 요청 메서드(GET, POST, HEAD, DELETE, PUT, TRACE 등)가 지정된 리소스에 적용 가능하지 않으며 이 페이지에 액세스하는 데 사용되는 HTTP 동사가 허용되지 않습니다(메서드가 허용되지 않음) 허용됨)
· 406 - 허용되지 않음 지정된 리소스를 찾았지만 해당 MIME 유형이 클라이언트가 Accpet 헤더에 지정한 것과 호환되지 않습니다. 클라이언트 브라우저가 요청한 페이지의 MIME 유형을 허용하지 않습니다.
· 407 - 프록시 인증 필요 이 상태 코드는 401(권한 없음)과 유사하지만 요청자가 인증을 위해 프록시를 사용해야 함을 지정합니다. 서버가 이 응답을 반환하는 경우 서버는 요청자가 사용해야 하는 프록시도 나타냅니다.
· 408 - 요청 시간 초과 서버가 허용하는 대기 시간 내에 클라이언트가 요청을 발행하지 않았습니다. 클라이언트는 나중에 동일한 요청을 반복할 수 있습니다.
· 409 - 충돌 요청을 완료하는 동안 서버에 충돌이 발생했습니다. 서버는 응답에서 발생한 충돌에 대한 정보를 포함해야 합니다. 서버는 이전 요청과 충돌하는 PUT 요청에 응답할 때 이 코드를 반환하여 두 요청 간의 차이점 목록을 제공할 수 있습니다.
· 410 - 사라짐 요청한 문서를 더 이상 사용할 수 없으며 서버가 리디렉션할 주소를 알 수 없습니다. 404와 차이점은 407을 반환하면 문서가 지정된 위치를 영구적으로 떠났다는 의미이고, 404는 알 수 없는 이유로 문서를 사용할 수 없음을 의미한다는 것입니다.
· 411 - 길이 필수 클라이언트가 Content-Length 헤더를 보내지 않으면 서버는 잘못된 Content-Length 헤더 필드가 포함된 요청을 수락하지 않습니다.
· 412 - 전제 조건 실패 요청 헤더에 지정된 일부 전제 조건이 실패했습니다.
· 413 – 요청 엔터티가 너무 큼 대상 문서가 서버가 현재 처리할 수 있는 것보다 큽니다. 서버가 나중에 요청을 처리할 수 있다고 생각하면 Retry-After 헤더를 제공해야 합니다.
· 414 - 요청 URI가 너무 깁니다. URI가 너무 깁니다.
· 415 – 지원되지 않는 미디어 유형입니다.
· 416 – 요청된 범위가 만족되지 않음 서버가 요청에서 클라이언트가 지정한 Range 헤더를 충족할 수 없습니다.
·417 – 실행에 실패했습니다.
· 423 – 잠긴 오류.
5xx - 서버 오류
이러한 상태 코드는 서버가 요청을 처리하는 동안 내부 오류가 발생했음을 나타냅니다. 이러한 오류는 요청 오류가 아니라 서버 자체의 오류일 수 있습니다.
· 500 - 내부 서버 오류 서버에 오류가 발생하여 요청을 완료할 수 없습니다.
· 500.12 - 웹 서버에서 애플리케이션을 다시 시작하는 중입니다.
· 500.13 - 웹 서버 사용량이 너무 많습니다.
· 500.15 - Global.asa에 대한 직접 요청은 허용되지 않습니다.
· 500.16 – UNC 인증 자격 증명이 잘못되었습니다. 이 오류 코드는 IIS 6.0에만 해당됩니다.
· 500.18 – URL 인증 저장소를 열 수 없습니다. 이 오류 코드는 IIS 6.0에만 해당됩니다.
· 500.100 - 내부 ASP 오류.
· 501 - 구현되지 않음 서버에 요청을 완료하는 기능이 없습니다. 예를 들어, 서버가 요청 메소드를 인식하지 못하는 경우 서버는 이 코드를 반환할 수 있습니다.
· 502 - 잘못된 게이트웨이 게이트웨이 또는 프록시 역할을 하는 서버가 업스트림 서버로부터 잘못된 응답을 받았습니다.
· 502.1 - CGI 응용 프로그램 시간이 초과되었습니다.
· 502.2 - CGI 응용 프로그램 오류.
· 503 - 서비스를 사용할 수 없습니다. (과부하 또는 유지보수를 위한 다운타임으로 인해) 현재 서버를 사용할 수 없습니다. 대개 이는 일시적인 상태입니다.
· 504 - 게이트웨이 시간 초과 게이트웨이 또는 프록시 역할을 하는 서버가 업스트림 서버로부터 요청을 제때 받지 못했습니다.
· 505 - 지원되지 않는 HTTP 버전 서버가 요청에 사용된 HTTP 프로토콜 버전을 지원하지 않습니다.
위 내용은 HTTP 응답 상태 코드란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!