> 백엔드 개발 > PHP 튜토리얼 > CodeIgniter 4 요청 및 응답 codeigniter thinkphp codeigniter 3.0 codeigniter cms

CodeIgniter 4 요청 및 응답 codeigniter thinkphp codeigniter 3.0 codeigniter cms

WBOY
풀어 주다: 2016-07-29 08:54:41
원래의
1062명이 탐색했습니다.

data-id="1190000004868315">

CodeIgniter 4는 입력 및 출력 처리 방식에 큰 변화를 가져왔습니다. 최신 V3 버전을 포함한 이전 버전에서는 관련 함수가 포함된 두 개의 클래스를 사용하여 입력과 출력을 처리했습니다. 이 처리 방법에는 고급 기술이 없지만 간단하고 직접적으로 기능을 구현할 수 있습니다. V4에서는 HTTP 레이어를 더욱 모듈화하고 HTTP 요청과 응답을 모두 처리하는 새로운 클래스 구조를 구축할 것입니다.

개요

웹 애플리케이션을 개발할 때(CLI 프로그램과 달리) IncomingRequestResponse 두 클래스만 걱정하면 됩니다.

IncomingRequest 클래스

IncomingRequest 클래스에는

  • GET, POST, SERVER 및 ENV 환경을 포함하여 HTTP 요청 및 요청에 수반되는 데이터가 포함됩니다. 변수

  • HTTP 요청 헤더

  • 쿠키

  • 현재 요청된 URL 개체

  • 업로드된 파일

에는 다음과 같은 일반적인 요청 정보도 포함됩니다.

  • 클라이언트 IP 주소

  • Ajax 요청인지

  • CLI 요청인지

  • HTTPS인지

클래스명 IncomingRequest가 궁금하시다면, IncomingRequest를 간단히 Request라고 불러도 될까요? 대답은 '아니오'입니다. GET 및 POST와 같은 변수를 포함하는 보다 일반적인 또 다른 요청 클래스가 이미 있지만 이 클래스에는 자세한 HTTP 요청 정보가 포함되어 있지 않기 때문입니다. 요청은 일반적으로 두 가지 작업만 수행합니다. 하나는 브라우저 클라이언트가 서버에 요청을 보내거나(들어오는 연결) 현재 서버가 외부 서버에 요청을 보내는 것(나가는 연결)입니다.

응답 클래스

응답 클래스는 프로그램의 실행 결과를 클라이언트에 반환하는 데 사용됩니다. HTTP 응답 헤더를 설정하거나 콘텐츠를 클라이언트에 직접 보낼 수 있습니다. Response 클래스는 다음과 같은 몇 가지 편리한 메서드를 제공합니다.

  • 적절한 캐시 없음 헤더 정보 설정

  • HTTP 캐시 헤더 정보 처리

  • 페이지 리디렉션

간단한 예

위에서 언급한 내용은 매우 기술적인 것처럼 보이지만 실제로는 매우 간단합니다. 이러한 클래스의 인스턴스는 각 컨트롤러에 속성으로 추가되었으므로 귀찮은 경우 이러한 속성을 직접 사용할 필요가 없습니다. Response 클래스는 컨트롤러의 출력을 캡처하여 자동으로 응답 본문으로 설정합니다. 간단한 Hello World는 다음과 같습니다.

<code>class Home extends \CodeIgniter\Controller
{
    public function index()
    {
        echo "Hello World!";
    }
}</code>
로그인 후 복사

쉽습니다.

이 프레임워크는 필요할 때 응답을 정확하게 제어할 수 있는 기능을 제공합니다. 복잡한 HTTP 캐싱 전략을 만들고 IncomingRequest 클래스를 사용하여 콘텐츠 협상을 통해 응답 콘텐츠를 사용자 지정할 수 있습니다.

다음은 약간 더 복잡한 예입니다. 코드가 이해하기 쉽고 처리하기 쉽습니다.

<code>class Home extends \CodeIgniter\Controller
{
    public function __construct(...$params)
    {
        parent::__construct(...$params);

        // This controller is only accessible via HTTPS
        if (! $this->request->isSecure())
        {
            // Redirect the user to this page via HTTPS, and set the Strict-Transport-Security
            // header so the browser will automatically convert all links to this page to HTTPS
            // for the next year.
            force_https();
        }
    }

    public function index()
    {
        $data = [
            ...
        ];

        // Set some HTTP cache rules for this page.
        $this->response->setCache([
            'max-age' => 300,
            's-max-age' => 900,
            'etag' => 'foo'
        ]);

        // Return JSON
        $this->response->setContentType('application/json')
                       ->setOutput(json_encode($data));
    }
}</code>
로그인 후 복사

이 예에서는 주로 세 가지 작업을 수행합니다. 첫째, 현재 URL을 HTTPS URL로 리디렉션하고 Strict-Transport-Security 응답 헤더를 설정하여(이 방법은 많은 주류 브라우저에서 지원되었으며 브라우저는 요청을 보내기 전에 자동으로 HTTP 요청을 HTTPS 요청으로 변환합니다) 이 페이지는 HTTPS를 통해 액세스할 수 있으며, 브라우저가 캐싱을 올바르게 처리할 수 있도록 몇 가지 HTTP 캐싱 규칙을 설정합니다. 즉, HTTP 요청 수를 줄이고 서버 부하를 줄이며 성능을 향상할 수 있습니다. JSON 데이터를 사용자에게 출력하고 콘텐츠 유형이 올바른지 확인하세요.

이 글을 통해 모두가 CodeIgniter의 미래를 대략적으로 이해하고, 변화가 두렵지 않다는 사실을 깨닫는 데 도움이 되기를 바랍니다. :) 앞으로 상대적으로 안정적인 아키텍처가 형성될 때까지 프레임워크에 대한 더 자세한 내용이 확정될 것이며, 이러한 내용에 대해 이야기하는 기사가 더 많이 작성될 것입니다.

이상은 codeigniter의 내용을 포함하여 CodeIgniter 4의 요청과 응답을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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