> 백엔드 개발 > PHP 튜토리얼 > PHP 정규 표현식 작동: HTTP 상태 코드 일치

PHP 정규 표현식 작동: HTTP 상태 코드 일치

WBOY
풀어 주다: 2023-06-23 11:02:01
원래의
1387명이 탐색했습니다.

PHP 정규식 연습: HTTP 상태 코드 일치

웹사이트 개발에서 HTTP 상태 코드는 매우 중요한 개념입니다. HTTP 프로토콜에 따르면 각 HTTP 응답에는 클라이언트에 요청 처리 결과를 알려주는 3자리 상태 코드가 포함되어야 합니다. PHP를 사용하여 웹사이트를 개발하는 경우 HTTP 상태 코드와 일치하는 정규식을 익히는 것은 유용한 기술입니다.

HTTP 상태 코드 분류

HTTP 상태 코드는 첫 번째 숫자에 따라 다음 5가지 범주로 나뉩니다.

  • 1xx: 서버가 요청을 받았지만 완료하려면 추가 작업이 필요함을 나타내는 정보용 상태 코드입니다. 처리.
  • 2xx: 서버가 요청을 성공적으로 처리했음을 나타내는 성공 상태 코드입니다.
  • 3xx: 요청을 완료하려면 클라이언트의 추가 작업이 필요함을 나타내는 리디렉션 상태 코드입니다.
  • 4xx: 클라이언트 오류 상태 코드는 클라이언트가 보낸 요청에 문제가 있어 서버가 요청을 처리할 수 없음을 나타냅니다.
  • 5xx: 서버 오류 상태 코드로, 서버가 요청을 처리할 때 오류가 발생했음을 나타냅니다.

이 기사에서는 먼저 모든 HTTP 상태 코드를 나열한 다음 PHP 정규식을 통해 일치시킵니다.

HTTP 상태 코드 목록

다음은 모든 HTTP 상태 코드와 그 의미입니다.

  • 100 계속: 클라이언트는 계속해서 요청을 보내야 합니다. 이 임시 응답은 요청의 일부가 서버에 의해 수신되었으며 아직 거부되지 않았음을 클라이언트에 알리는 데 사용됩니다. 요청을 계속 보내면 전체 요청이 완료되거나 요청의 다른 부분이 완료될 수 있습니다.
  • 101 프로토콜 전환: 서버가 클라이언트의 요청을 수신하고 이해했으며 프로토콜 업그레이드 작업을 완료했습니다. 서버는 업그레이드 헤더를 통해 다른 프로토콜로 통신하도록 클라이언트에 알립니다.
  • 200 OK: 요청이 성공했으며 요청에서 예상하는 응답 헤더 또는 데이터 본문이 이 응답과 함께 반환됩니다.
  • 201 생성됨: 요청이 성공했으며 서버가 새 리소스를 생성했습니다.
  • 202 수락됨: 서버가 요청을 수락했지만 아직 처리가 완료되지 않았습니다. 성공을 보장할 수 없습니다. 일반적으로 비동기 처리에 사용됩니다.
  • 203 신뢰할 수 없는 정보: 서버가 요청을 성공적으로 처리했지만 반환된 정보는 다른 소스에서 올 수 있습니다.
  • 204 콘텐츠 없음: 서버가 요청을 성공적으로 처리했지만 콘텐츠를 반환하지 않았습니다.
  • 205 콘텐츠 재설정: 서버가 요청을 성공적으로 처리했지만 콘텐츠를 반환할 필요는 없습니다.
  • 206 부분 콘텐츠: 서버가 부분 요청을 성공적으로 처리했으며 반환된 콘텐츠는 범위 요청의 엔터티 콘텐츠입니다.
  • 300개의 다중 선택: 클라이언트가 요청한 리소스는 여러 위치에서 찾을 수 있으며 서버는 클라이언트가 선택할 수 있는 리소스 목록을 반환합니다.
  • 301 영구적으로 이동됨: 클라이언트가 요청한 리소스가 새로운 위치로 영구적으로 이동되었으며 서버는 클라이언트에 리디렉션 URL을 반환합니다.
  • 302 발견됨: 클라이언트가 요청한 리소스가 일시적으로 새 위치로 이동되었으며 서버는 리디렉션된 URL을 클라이언트에 반환합니다.
  • 303 기타 보기: 클라이언트가 요청한 리소스에 다른 URI가 있으며, 요청한 리소스를 얻으려면 GET 메서드를 사용해야 합니다.
  • 304 수정되지 않음: 클라이언트가 조건부 요청을 보냈고 서버는 클라이언트에게 브라우저 캐시의 리소스를 계속 사용할 수 있다고 말했습니다.
  • 305 프록시 사용: 클라이언트가 요청한 리소스는 프록시를 통해 액세스해야 합니다.
  • 307 임시 리디렉션: 클라이언트가 요청한 리소스가 일시적으로 새 위치로 이동되었으며 서버는 리디렉션된 URL을 클라이언트에 반환합니다. 이 리디렉션 방법은 HTTP 요청 방법과 메시지 본문을 변경하지 않습니다.
  • 400 잘못된 요청: 요청에 구문 오류가 있거나 서버가 요청을 이해할 수 없습니다.
  • 401 승인되지 않음: 요청에 사용자 확인이 필요합니다.
  • 402 결제 필요: 이 상태 코드는 향후 사용을 위해 예약되어 있으며 현재는 사용되지 않지만 전자화폐를 향후 사용할 수 있음을 나타냅니다. 이 상태 코드는 향후 새로운 디지털 통화에 대한 적절한 서버 지원을 보장하기 위해 디지털 통화용으로 특별히 설계되었습니다.
  • 403 금지됨: 서버가 요청을 거부했습니다.
  • 404 찾을 수 없음: 서버가 요청한 리소스를 찾을 수 없습니다.
  • 405 메서드가 허용되지 않음: 클라이언트가 요청한 HTTP 메서드는 허용되지 않습니다.
  • 406 허용되지 않음: 클라이언트가 요청한 콘텐츠 특성에 따라 서버가 요청을 완료할 수 없습니다.
  • 407 프록시 인증 필요: 요청자는 승인을 위해 프록시를 사용해야 합니다.
  • 408 요청 시간 초과: 요청 시간이 초과되었습니다.
  • 409 충돌: 요청한 리소스의 현재 상태와의 충돌로 인해 요청을 완료할 수 없습니다.
  • 410 사라짐: 요청한 리소스를 더 이상 서버에서 사용할 수 없습니다.
  • 411 길이 필수: 클라이언트가 요청에 Content-Length 헤더를 설정하지 않았으므로 서버가 이 요청을 처리할 수 없습니다.
  • 412 전제 조건 실패: 서버가 요청의 유효성을 검사할 때 요청 헤더 필드에 제공된 전제 조건 중 하나 이상을 충족하지 못했습니다.
  • 413 페이로드가 너무 큼: 요청 엔터티가 너무 커서 서버가 이를 처리할 수 없습니다.
  • 414 URI가 너무 김: 요청한 URI가 너무 길어서 서버가 처리할 수 없습니다.
  • 415 지원되지 않는 미디어 유형: 서버가 요청에 첨부된 미디어 형식을 처리할 수 없습니다.
  • 416 범위가 만족스럽지 않음: 클라이언트가 요청한 범위가 잘못되어 서버가 이를 처리할 수 없습니다.
  • 417 예상 실패: 서버가 예상 요청 헤더 정보를 충족할 수 없습니다.
  • 421 잘못된 요청: 이 요청은 응답을 생성할 수 없는 서버에 대한 요청입니다. 이는 이러한 요청이 액세스해야 하는 리소스가 오염되었거나 완전히 게시되지 않았거나 로컬 시스템에서만 사용할 수 있기 때문일 수 있습니다. 이러한 요소는 네트워크에 연결된 특정 클라이언트에만 적용됩니다.
  • 422 처리할 수 없는 엔터티: 요청 형식은 정확하지만 의미 오류로 인해 응답할 수 없습니다.
  • 423 잠김: 현재 리소스가 잠겨 있습니다.
  • 424 종속성 실패: 이전 요청과의 충돌로 인해 현재 요청이 실패했습니다.
  • 425 너무 이르다: 리소스를 로드하는 데 필요한 조건이 충족될 때까지 요청을 충족할 수 없습니다.
  • 426 업그레이드 필요: 클라이언트는 TLS/1.0으로 전환해야 합니다.
  • 428 필수 전제 조건: 이 요청에는 유효한 전제 조건이 필요합니다.
  • 429 요청이 너무 많음: 요청이 너무 많습니다.
  • 431 요청 헤더 필드가 너무 큼: 요청 헤더가 크기 제한을 초과합니다.
  • 451 법적 이유로 사용할 수 없음: 이 요청에는 금지된 정보가 포함되어 있을 수 있습니다.
  • 500 내부 서버 오류: 서버에 알 수 없는 오류가 발생했습니다.
  • 501 구현되지 않음: 클라이언트가 요청한 기능을 서버가 지원하지 않습니다.
  • 502 잘못된 게이트웨이: 게이트웨이 또는 프록시 역할을 하는 서버에서 요청을 실행하는 동안 오류가 발생했습니다.
  • 503 서비스를 사용할 수 없음: 서버가 일시적으로 요청을 처리할 수 없으며 Retry-After 헤더를 클라이언트에 반환할 수 있습니다.
  • 504 게이트웨이 시간 초과: 게이트웨이 또는 프록시 역할을 하는 서버가 요청을 실행할 때 업스트림 서버로부터 응답을 제때 받지 못했습니다.
  • 505 지원되지 않는 HTTP 버전: 서버가 요청에 사용된 HTTP 프로토콜 버전을 지원하지 않습니다.
  • 506 변형도 협상함: 서버에 둘 이상의 협상 가능한 응답을 충족하도록 처리 중인 요청을 발생시키는 내부 구성 오류가 있습니다.
  • 507 저장 공간 부족: 서버가 요청을 완료하는 데 필요한 콘텐츠를 저장할 수 없습니다.
  • 508 루프 감지됨: 요청을 처리하는 동안 서버가 무한 루프에 갇힌 것을 발견했습니다.
  • 510 확장되지 않음: 클라이언트는 응답을 추가로 확장해야 하며 서버에는 해당 솔루션이 없습니다.
  • 511 네트워크 인증 필요: 네트워크 리소스를 사용하려면 클라이언트를 인증해야 합니다.

HTTP 상태 코드를 일치시키는 PHP 정규식

이제 PHP 정규식을 사용하여 HTTP 상태 코드를 일치시켜 보겠습니다. PHP에서는 preg_match() 함수를 사용하여 정규식 일치를 구현할 수 있습니다. 다음은 HTTP 상태 코드 매칭을 위한 샘플 코드입니다.

$status_code = '200'; // 要匹配的状态码
$pattern = '/^[1-5][0-9]{2}$/'; // HTTP状态码的正则表达式
if(preg_match($pattern, $status_code)) {
    echo '匹配成功!';
} else {
    echo '匹配失败!';
}
로그인 후 복사

위 코드에서는 먼저 매칭할 상태 코드를 200으로 정의한 후, HTTP 상태 코드의 정규 표현식을 "/^1-5"로 정의합니다. { 2}$/”. 이 정규식은 3자리 숫자와 일치할 수 있으며 첫 번째 숫자는 1~5여야 하고 나머지 두 자리 숫자는 0~9일 수 있습니다. 마지막으로 일치를 위해 preg_match() 함수를 사용할 때, 반환값이 1이면 일치에 성공한 것을 의미하고, 반환값이 0이면 일치에 실패한 것을 의미한다.

여러 HTTP 상태 코드를 일치시키려면 preg_match_all() 함수를 사용할 수 있습니다. 다음은 모든 HTTP 상태 코드와 일치하는 샘플 코드입니다.

$status_codes = array('200', '404', '500'); // 要匹配的状态码数组
$pattern = '/^[1-5][0-9]{2}$/'; // HTTP状态码的正则表达式
foreach($status_codes as $status_code) {
    if(preg_match($pattern, $status_code)) {
        echo $status_code.' 匹配成功!'."
";
    } else {
        echo $status_code.' 匹配失败!'."
";
    }
}
로그인 후 복사

위 코드에서는 먼저 일치시킬 상태 코드 배열을 정의한 다음 foreach()를 사용하여 배열을 반복합니다. 루프에서는 preg_match() 함수를 사용하여 매칭을 수행하고 반환 값을 기반으로 매칭 결과를 출력합니다.

요약

HTTP 상태 코드는 웹사이트 개발에 있어 매우 중요한 개념입니다. 때로는 정규식을 통해 HTTP 상태 코드를 일치시켜야 할 때도 있습니다. PHP에서는 preg_match() 함수를 사용하여 정규식 일치를 구현할 수 있습니다. 이 기사를 통해 HTTP 상태 코드와 PHP 정규식을 일치시키는 기술을 익힐 수 있기를 바랍니다.

위 내용은 PHP 정규 표현식 작동: HTTP 상태 코드 일치의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿