웹 애플리케이션이 점점 더 오래 실행됨에 따라 서버 성능과 데이터 전송 속도가 점점 더 큰 문제가 됩니다. HTTP 캐싱은 이 문제를 처리하는 방법으로 클라이언트 측에서 일반적으로 사용되는 리소스를 캐싱하면 애플리케이션이 요청에 더 빠르게 응답하고 서버의 로드를 줄일 수 있습니다. 웹 개발 언어인 PHP 8.0에는 PSR-7이라는 HTTP 캐싱 처리를 위한 자체 솔루션도 있습니다.
PSR-7은 HTTP 메시지용으로 설계된 PHP 표준으로, HTTP 요청 및 응답 메시지 생성 및 처리를 위한 통합 인터페이스를 제공합니다. 이는 HTTP 메시지의 기본 구성 요소(예: HTTP 헤더, 요청 URI, HTTP 메서드, HTTP 본문)와 이를 구성, 직렬화 및 구문 분석하는 방법을 정의합니다.
HTTP 캐싱의 경우 PSR-7의 중요한 역할은 캐싱 제어의 표준인 HTTP 메시지 헤더를 표준화하는 것입니다. 사용자 에이전트는 Cache-Control과 같은 헤더 정보를 사용하여 캐싱 동작을 제어할 수 있으므로 효율적인 HTTP 캐싱을 달성하려면 PSR-7을 사용하는 것이 중요합니다.
다음은 PSR-7이 제공할 수 있는 몇 가지 HTTP 캐싱 솔루션입니다.
1. ETag 캐시
ETag 캐시는 엔터티 태그 캐시입니다. 클라이언트가 리소스를 요청하면 ETag가 응답 헤더에 추가되며, 이 헤더는 클라이언트에 의해 저장되었다가 다음에 동일한 리소스가 요청될 때 서버로 다시 전송됩니다. 서버는 클라이언트의 ETag가 서버 측 리소스와 동일한지 확인합니다. 그렇다면 서버는 304 Not Modified 응답 코드가 포함된 응답 헤더를 반환하고 클라이언트 캐시에서 리소스를 추출하여 리소스의 반복 전송을 방지하고 서버의 부하를 줄입니다.
ETag 캐싱은 PSR-7을 사용하여 쉽게 구현할 수 있습니다. 응답 메시지에 ETag 헤더를 추가하면 다음 요청을 위해 ETag를 클라이언트에 쉽게 다시 보낼 수 있습니다. 서버는 비교를 위해 ETag 값을 사용합니다. 값이 동일하면 더 이상 리소스를 보내지 않고 대신 304 Not Modified 응답을 보냅니다. 예는 다음과 같습니다.
$response = new Response();
$response = $response
->withHeader('ETag', 'MyETagValue');
Last-Modified 캐시는 엔터티 태그 캐시입니다. 서버는 응답 메시지 헤더에 Last-Modified 헤더를 추가합니다. 이 헤더의 값은 요청된 리소스의 마지막 수정 시간입니다. 클라이언트가 다음에 동일한 리소스를 요청할 때 날짜 및 시간 형식의 Last-Modified 헤더 정보를 서버에 다시 보냅니다. 서버는 이 헤더 정보가 리소스의 마지막 수정 시간인지 확인합니다. 그렇다면 서버는 304 Not Modified 응답 코드가 포함된 응답 헤더를 반환하고 클라이언트 캐시에서 리소스를 가져와 서버의 부하를 줄입니다.
psr-7을 사용하면 Last-Modified 캐싱을 쉽게 구현할 수도 있습니다. 코드 예:
$response = new Response();
$response = $response
->withHeader('Last-Modified', 'LastModifiedDate');
Cache-Control 캐시 전략은 캐싱 제어 방법에 대한 응답 메시지 헤더에 설정된 방법입니다. . 클라이언트의 요청을 줄여 서버의 부하를 줄입니다. Cache-Control 헤더 정보에는 다음과 같은 유형이 있습니다.
다음은 PSR-7을 통해 Cache-Control 캐시 전략을 구현한 예입니다. 응답 헤더에 필요한 정보를 추가하기만 하면 됩니다.
$response = new Response();
$response = $response
->withHeader('Cache-Control', 'max-age=3600');
Summary
PSR-7은 HTTP 요청 및 응답 메시지를 생성하고 처리하기 위한 표준화된 솔루션을 제공합니다. 효율적인 HTTP 캐싱을 위해서는 필수적입니다. PSR-7을 사용하면 ETag 캐싱, Last-Modified 캐싱 및 Cache-Control 캐싱 전략을 쉽게 구현할 수 있습니다. PHP 8.0을 사용하여 웹 애플리케이션을 구축 중이고 효율적인 HTTP 캐싱을 구현해야 하는 경우 PSR-7을 사용해 보세요.
위 내용은 PHP8.0의 HTTP 캐싱 라이브러리: PSR-7의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!