오늘은 웹 캐시 저장을 방지하는 방법을 공유합니다.

 

웹 캐시는 사용자(client)가 웹 사이트(server)에 접속 할 때, 서버 지연을 줄이기 위해 정적 컨텐츠(image, js, css) 등을 임시 저장하는 정보기술 입니다.

캐시를 이용하면 저장된 웹 사본의 정보를 불러옴으로써 더 빠른 열람이 가능하며 트래픽 낭비를 해소할 수 있습니다.

 

 

※ 캐싱의 문제점

 

- 빠르게 변화되는 사이트에 비해 사용자는 이미 하드디스크에 캐시된 버전으로 보일 수 있으므로

포맷이 안 맞거나 올바르지 않은 이미지로 보여질 수 있습니다.

 

- 웹 서비스 내 주요 정보 및 민감 정보를 다루는 페이지가 존재할 경우 해당 페이지의 캐싱 방지 설정이 따로 없다면

사용자 세션이 만료된 이후에도 브라우저 내 뒤로가기 등을 통해 별도의 인증 과정 없이 주요 페이지에 접근이 가능해집니다.

이로 인해 민감한 정보들이 악의적인 사용자들에게 노출될 가능성이 있기 때문에 캐싱 방지를 하는 것이 좋습니다.

 

 

각 언어 별 no-cache 설정 방법은 문법 형태의 차이만 약간 있을 뿐 설정 방법은 동일합니다.

 

 제목

 설명 

Cache-Control

 HTTP/1.1 스펙 에서 정의, no-cache, no-store 등의 설정

Pragma

 Cache-Control이 생기기 전에 HTTP/1.0 no-cache 설정을 위해 사용되는 헤더. HTTP/1.0 를 사용하는 클라이언트를 위해 사용

Expires

 캐시 만료 시간 지정 '-1' 설정 시, 캐시된 페이지를 즉시 만료

 

 

HTML, ASP, JSP, PHP 웹 캐시 저장 방지

 

HTML인 경우

<META http-equiv="Pragma" content="no-cache">
<META http-equiv="Cache-Control" content="No-Cache">
<META http-equiv="Expires" content="-1"> 

 

ASP인 경우

<%   
    Response.Expires = 0
    Response.AddHeader "Pragma","no-cache"
    Response.AddHeader "Cache-Control","no-cache,must-revalidate"
%>   

 

JSP인 경우

<%   
    response.setHeader("Cache-Control","no-store");
    response.setHeader("Pragma","no-cache");
    response.setDateHeader("Expires",0);
    if (request.getProtocol().equals("HTTP/1.1"))
    	response.setHeader("Cache-Control", "no-cache");
%> 

 

PHP인 경우   

<?
    header("Pragma: no-cache");
    header("Cache-Control: no-cache,must-revalidate");
?>

 

 


  HTML 엔티티(Entities)란? 

HTML 문서를 코딩할때 태그와 혼용되는 것을 막기위해 브라우저 상에 예약된 문자를 사용합니다.
가장 많이들 알고계시는 &nbsp;를 입력하면 공백으로 대체되는 것이 그 예입니다.
자세한 것은 w3schools에서 가져온 내용을 표로 기입하였으니 참고바랍니다.

 설명

엔티티 이름

엔티티 번호

결과

 띄워쓰기

&nbsp;

&#160;

 

 보다적은

&lt;

&#60;

<

보다많은

&gt;

&#62;

>

and기호

&amp;

&#38;

&

큰 따옴표

&quot;

&#34;

"

 작은 따옴표

&apos;

&#39;

'

센트

&cent;

&#162;

¢

파운드

&pound;

&#163;

£

엔 

&yen;

&#165;

¥

유로 

&euro;

&#8364;

 저작권

&copy;

&#169;

©

등록 상표

&reg;

&#174;

®

논리 기호(FOR ALL)

&forall;

&#8704;

 편미분 기호

 &part;

&#8706;

 논리기호(THERE EXISTS)

 &exist;

&#8707;

집합 기호

 &empty;

&#8709;

나블라 

 &nabla;

&#8711;

집합 기호 

&isin;

&#8712;

집합 기호 

 &notin;

&#8713;

집합 기호 

&ni;

&#8715;

N-ARY PRODUCT

&prod;

&#8719;

N-ARY SUMMATION

&sum;

&#8721;

GREEK CAPITAL LETTER ALPHA

&Alpha;

&#913;

Α

GREEK CAPITAL LETTER BETA

&Beta;

&#914;

Β

GREEK CAPITAL LETTER GAMMA

&Gamma; 

&#915;

Γ

GREEK CAPITAL LETTER DELTA

&Delta;

&#916;

Δ

GREEK CAPITAL LETTER EPSILON

&Epsilon; 

&#917;

Ε

GREEK CAPITAL LETTER ZETA

&Zeta; 

&#918;

Ζ

TRADEMARK

&trade;

&#8482;

LEFTWARDS ARROW 

&larr;

&#8592;

UPWARDS ARROW 

&uarr;

&#8593;

RIGHTWARDS ARROW

&rarr;

&#8594;

DOWNWARDS ARROW

&darr;

&#8595;

BLACK SPADE SUIT

&spades;

&#9824;

BLACK CLUB SUIT

&clubs;

&#9827;

BLACK HEART SUIT

&hearts;

&#9829;

BLACK DIAMOND SUIT

&diams;

&#9830;


 Mark

Character 

Construct 

Result

  ̀

a

a&#768;

 ́

a

a&#769;

 ̂

a

a&#770;

 ̃

a

a&#771;

  ̀

O

O&#768;

 ́

O

O&#769;

̂

O

O&#770; 

 ̃

O

O&#771;