반응형
1.압축사용과 그렇지 않은 HTTP 출력 비교
2.gzip을 켭니다
아파치를 이용하다 mod_deflate module 열기gzip
여는 방법:
sudo a2enmod deflate
sudo /etc/init.d/apache2 restart
닫기 방법:
sudo a2dismod deflate
sudo /etc/init.d/apache2 restart
3.gzip 압축출력이 필요한 타입 설정
json의 출력 유형은 applicat입니다.ion/json, 그래서 이렇게 설정할 수 있습니다.
httpd.conf 의 <Direct > 에서tory></Directory>에 추가하기
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE application/json
</IfModule>
<?php
$data = array(
array('name'=>'one','value'=>1),
array('name'=>'two','value'=>2),
array('name'=>'three','value'=>3),
array('name'=>'four','value'=>4),
array('name'=>'five','value'=>5),
array('name'=>'six','value'=>6),
array('name'=>'seven','value'=>7),
array('name'=>'eight','value'=>8),
array('name'=>'nine','value'=>9),
array('name'=>'ten','value'=>10),
);
header('content-type:application/json');
echo json_encode($data);
?>
gzip 설정 전 출력:
gzip 설정 후 출력:
4.단일 json은 gzip을 사용하여 출력을 압축합니다.
AddOutputFilterBy 설정Type DEFLATE application/json 후 모든 json 형식의 데이터 출력은 gzip 압축 출력을 사용합니다.
만약 json이 gzip 압축을 사용하기를 원한다면출력, 기타 불필요, ob_start(;) 방법을 사용하여 구현할 수 있다.
일단 AddOutputFil을 설정할 필요가 없습니다terByType, 그리고 코드 맨 처음 위치에 ob_start('ob_gzhandler')를 추가합니다.
<?php
ob_start('ob_gzhandler');
$data = array(
array('name'=>'one','value'=>1),
array('name'=>'two','value'=>2),
array('name'=>'three','value'=>3),
array('name'=>'four','value'=>4),
array('name'=>'five','value'=>5),
array('name'=>'six','value'=>6),
array('name'=>'seven','value'=>7),
array('name'=>'eight','value'=>8),
array('name'=>'nine','value'=>9),
array('name'=>'ten','value'=>10),
);
header('content-type:application/json');
echo json_encode($data);
?>
반응형
'개발 꿀팁 > PHP' 카테고리의 다른 글
php 자주 사용하는 사용자 정의 방법 (0) | 2022.08.23 |
---|---|
php 헤더로 사용자 정의 데이터 보내기 (0) | 2022.08.23 |
php ip2long 음수 발생 원인과 해결 방법 (0) | 2022.08.23 |
php 배열 요소 찾기 효율 향상 방법 (0) | 2022.08.22 |
php 한 변이 N인 솔리드 및 속이 빈 마름모꼴을 인쇄 (0) | 2022.08.22 |