Pragma directives (Pragma 지시어) 란?
- 웹 브라우저에 특정 HTTP 헤더를 관리하는 방법에 대한 "지침(directives, instructions)" 을 제공하는데 사용된다.
- Pragma 지시문은
<meta>
태그에서http-equiv
속성을 사용한다. - 웹페이지 동작에 상당한 영향을 미친다.
Pragma 지시어를 이용한 캐싱 제어 예제 살펴보기
- Pragma 지시어를 통해 클라이언트측 캐싱을 활성화 혹은 비활성화 할 수 있다.
개요
- Pragma 의 내용을 "캐시 없음(no-cache)" 으로 설정하면 브라우저는 웹페이지를 캐시하지 않는다.
- 페이지에 액세스할 때마다 서버에서 페이지의 새 버전을 검색한다.
HTML 에 Pragma 지시어 입력하기
<meta http-equiv="Pragma" content="no-cache" />
- HTML 의
<head>
섹션에 위와 같은<meta>
태그를 추가할 수 있다.
브라우저의 명령 (instruction) 처리
- 브라우저는 위의 태그를 읽고 명령 (instruction) 을 처리한다.
- 사용자가 웹페이지를 탐색할 때 브라우저는 이 태그를 읽고 이 페이지를 캐시하면 안된다는 것을 이해한다.
- 앞으로 사용자가 이 페이지를 방문하거나 새로 고침할 때마다 페이지 콘텐츠에 대한 새로운 요청이 서버에 이루어진다.
HTTP 버전 관련
- "Pragma" 지시어는 HTTP/1.0 용으로 특별히 설계되었으므로 HTTP/1.1 이상에서는 제대로 작동하지 않을 수 있다.
- HTTP 최신 버전에서는
Cache-Control 지시문
을 사용하는 것이 좋다. - "Pragma" 지시어 및 기타 캐싱 관련 지시어는 원래 HTTP 헤더로 전송되도록 고안되어서 서버측 언어 또는 설정으로 HTTP 헤더에 직접 설정할 때 더 큰영향을 미친다.
- 모든 브라우저가 HTML 에 설정된 지시어를 존중하는 것은 아니다.
주의점
- 웹페이지를 캐싱하지 않는다는 것은 매번 리소스를 새로 받아온다는 것이므로 서버 부하가 증가할 수 있다.
- 콘텐츠가 자주 변경되는 경우엔 캐싱 없음이 유용할 수 있지만, 대부분의 상황에서는 성능상의 이유로 캐싱이 유리하다는 것을 잘 생각해야 한다.
개인적인 의문점이었던 것
- HTTP 응답 코드를 받는 것이 HTML 소스를 보는 것보다 먼저일텐데?
- 어차피 캐싱은 첫 페이지를 받아올 때 설정해도 문제가 없겠구나.
반응형
'프론트엔드 > HTML (Markup Language)' 카테고리의 다른 글
스스로 닫히는, 닫지 않아도 되는 태그들 (self-closing tags) (0) | 2023.04.01 |
---|---|
시멘틱 HTML (Semantic HTML, 의미론적 HTML, Semantic Markup) 이란? (0) | 2023.04.01 |
HTML 메타 태그란? meta tag (0) | 2022.12.14 |
HTML 최상단 !DOCTYPE html 의 의미 (0) | 2022.12.14 |