Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- coursera
- Til
- 클로저
- HTTP
- reactnative
- 리눅스
- 우선순위
- Andrew Ng
- 자료구조
- scope
- docker
- 자바스크립트
- 러닝자바스크립트
- javascript
- ES6
- Sequence
- 1일1문장
- 개발공부
- React
- CSS
- Linux
- 스파르타코딩클럽
- 데이터전송
- 끈기
- Machine Learning
- 회고
- nodejs
- 객체
- multer
- NextJS
Archives
- Today
- Total
해나아부지 개발일지
HTTP 통신에서 캐싱 활용 본문
HTTP 캐싱을 활용하기 위해 다음과 같은 값들을 설정할 수 있습니다:
- 캐시 제어 헤더 (Cache-Control header): 이 헤더를 사용하여 캐시 동작을 제어할 수 있습니다. 예를 들어, max-age 값을 설정하여 캐시가 유효한 시간을 정할 수 있습니다. 또한, no-cache, no-store, must-revalidate 등의 값을 설정하여 캐시를 사용하지 않거나 갱신해야 하는지 여부를 제어할 수 있습니다.
- ETag: 이 값은 캐시된 리소스가 원본과 같은지 확인하는 데 사용됩니다. 원본이 변경되면 ETag 값도 변경되므로, 캐시된 리소스가 더 이상 유효하지 않은 경우 서버로부터 새로운 리소스를 가져와야 합니다.
- Last-Modified: 이 값은 리소스가 마지막으로 수정된 시간을 나타냅니다. 캐시된 리소스가 원본보다 오래된 경우, 서버로부터 새로운 리소스를 가져와야 합니다.
- Expires: 이 값은 캐시된 리소스가 만료되는 시간을 나타냅니다. Expires 헤더는 캐시된 리소스의 만료 시간을 정확하게 나타내지 않으므로, 보통 Cache-Control 헤더의 max-age 값을 함께 사용합니다.
이러한 값들을 적절하게 설정하여 캐싱을 활용하면, 웹 페이지의 로딩 속도를 개선할 수 있습니다. 캐시된 리소스를 다시 다운로드하지 않고도 웹 페이지를 빠르게 로딩할 수 있기 때문입니다.
JavaScript에서 HTTP 통신을 할 때도 캐싱을 활용할 수 있습니다. 브라우저는 HTTP 캐시를 자동으로 관리하며, 캐시된 리소스를 다시 다운로드하지 않고 사용할 수 있습니다.
아래는 JavaScript에서 HTTP 캐싱을 활용하는 간단한 예제입니다:
// 캐시된 리소스 사용
fetch('/example.json', {cache: 'default'})
.then(response => response.json())
.then(data => console.log(data));
// 캐시된 리소스 갱신
fetch('/example.json', {cache: 'reload'})
.then(response => response.json())
.then(data => console.log(data));
위 예제에서, fetch 함수의 두 번째 인자로 cache 옵션을 설정하여 캐싱 동작을 제어할 수 있습니다. cache 옵션은 다음과 같은 값을 가질 수 있습니다:
- default: 캐시된 리소스를 사용하고, 캐시가 없는 경우 서버로부터 다운로드합니다. 이 옵션이 기본값입니다.
- no-store: 캐시를 사용하지 않고, 서버로부터 항상 다운로드합니다.
- reload: 캐시를 무시하고, 서버로부터 다운로드합니다.
- no-cache: 캐시를 사용하지만, 캐시된 리소스가 유효한지 서버에 확인하고 갱신합니다.
- force-cache: 캐시된 리소스를 사용하고, 캐시가 없는 경우 서버로부터 다운로드하지 않습니다.
위 예제에서는 cache 옵션으로 default 값을 설정하여 캐시된 리소스를 사용합니다. 또한, cache 옵션으로 reload 값을 설정하여 캐시된 리소스를 무시하고 서버로부터 갱신된 리소스를 다운로드합니다. 이렇게 캐싱을 활용하여 HTTP 통신을 최적화할 수 있습니다.
출처 - mdn http 통신
'Developers > Coding Question' 카테고리의 다른 글
리소스 우선순위를 제어하는 link 태그의 설정값 (0) | 2023.03.14 |
---|---|
TCP/IP three-way handshake란? (0) | 2023.03.10 |
네트워크 환경에서 데이터가 오가는 과정을 이해하는 것과 프론트엔드 업무 연관성 (0) | 2023.03.07 |
네트워크 환경에서 데이터가 오가는 과정을 이해하는 것이 왜 중요한 이유 (0) | 2023.03.07 |
what happen to input url on the browser? (0) | 2023.03.07 |
Comments