백엔드 개발 PHP 튜토리얼 求教cache-control头的统制(影响了自己写的缓存功能了)

求教cache-control头的统制(影响了自己写的缓存功能了)

Jun 13, 2016 pm 12:26 PM
cache control

求教cache-control头的控制(影响了自己写的缓存功能了)
自己做了一个php控制的缓存,依靠etag和文件缓存来处理
如果浏览器发送了etag,则进行对比,etag一致,直接发送304,etag不一致,如果有文件缓存,则直接读取文件缓存,并发送当前服务器缓存的etag
(文件缓存和etag的更新在其他地方处理)

现在突然发现有响应没有返回304,一查,发现这个地址的服务器http响应头返回了cache-control:no-cache
我清空服务器的缓存后看,第一次响应的时候服务器就自动发送了一个no-cache头,(我的etag也发送了出去的),结果就是无论服务器端有没有缓存,浏览器都不会把etag添加到自己的请求头里面去,服务器端处理的时候没有收到etag,就当做是第一次请求,然后又重新读取文件缓存,又重新发送etag……(响应200)

大致是这么回事,但是这样就失去了我想用304来直接缓存的效果了。

看了一下区别,正常的数据,大概10KB,运行一直正常(没有缓存初次请求130ms,有缓存初次请求90ms,之后16ms或以下)
而没有发送304的这个(一直发送no-cache)的这个,数据只有304B,(但是就算不加缓存模块,因为服务器计算的原因,也要花90ms左右),
怀疑是不是因为数据返回不一致的原因而导致的,将这个304B的数据扩增到12KB,还是发送no-cache头,增加到20kb,也是一样的。

然后懵了……不知道怎么回事了。

(天地良心,代码全部是我写的,除了一个header(etag)外绝对没有发送其他的etag了)
------解决思路----------------------
原因是什么?
为什么会一直发送no-cache呢?估计是服务器设置了吧。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

입사하고 나서 Cache가 뭔지 이해하게 됐어요 입사하고 나서 Cache가 뭔지 이해하게 됐어요 Jul 31, 2023 pm 04:03 PM

실제로는 이렇습니다. 당시 리더가 perf 하드웨어 성능 모니터링 작업을 지시했습니다. perf를 사용하는 동안 perf list 명령을 입력했는데 다음 정보가 표시되었습니다. 내 작업은 이러한 캐시 이벤트를 활성화하는 것입니다. 하지만 요점은 이러한 누락과 로드가 무엇을 의미하는지 전혀 모른다는 것입니다.

캐시를 사용하면 컴퓨터 속도가 빨라지는 이유는 무엇입니까? 캐시를 사용하면 컴퓨터 속도가 빨라지는 이유는 무엇입니까? Dec 09, 2020 am 11:28 AM

캐시를 사용하면 CPU의 대기 시간이 단축되므로 컴퓨터 속도가 향상될 수 있습니다. 캐시는 CPU와 메인 메모리 DRAM 사이에 위치한 작지만 고속의 메모리입니다. 캐시의 기능은 CPU 데이터 입출력 속도를 높이는 것입니다. 캐시는 용량은 작지만 속도가 빠르며, 메모리 속도는 낮지만 용량이 큽니다. 시스템 성능은 향상됩니다. 크게 개선되었습니다.

캐시란 무엇입니까? 캐시란 무엇입니까? Nov 25, 2022 am 11:48 AM

캐시(Cache)는 캐시 메모리(Cache Memory)라고 하며 중앙처리장치와 메인 메모리 사이에 있는 고속 소용량 메모리로 일반적으로 고속 SRAM으로 구성된다. CPU와 메모리 사이의 속도 차이가 시스템 성능에 미치는 영향을 줄이거 나 제거합니다. 캐시 용량은 작지만 빠르며, 메모리 속도는 낮지만 용량이 큽니다. 스케줄링 알고리즘을 최적화하면 시스템 성능이 크게 향상됩니다.

SpringBoot 프로젝트에서 캐시를 사용하는 방법 SpringBoot 프로젝트에서 캐시를 사용하는 방법 May 16, 2023 pm 02:34 PM

서문 캐싱은 자주 액세스하는 데이터를 메모리에 저장하고 데이터베이스와 같은 기본 데이터 소스에 대한 부담을 줄여 시스템 성능과 안정성을 효과적으로 향상시킬 수 있습니다. 다들 프로젝트에 어느 정도 사용해 보셨을 거라 생각하는데, 저희 프로젝트도 예외는 아닙니다. 그런데 최근 회사의 코드를 검토해보니, 대략적인 내용은 다음과 같습니다: publicUsergetById(Stringid). {Useruser=cache.getUser();if(user!=null){returnuser;}//데이터베이스에서 사용자 가져오기=loadFromDB(id);cahce.put(id,user);returnu

nginx 역방향 프록시 캐싱 튜토리얼. nginx 역방향 프록시 캐싱 튜토리얼. Feb 18, 2024 pm 04:48 PM

다음은 nginx 역방향 프록시 캐싱에 대한 튜토리얼입니다. nginx 설치: sudoaptupdatesudoaptinstallnginx 역방향 프록시 구성: nginx 구성 파일 열기: sudonano/etc/nginx/nginx.conf 캐싱을 활성화하려면 http 블록에 다음 구성을 추가합니다. http{...proxy_cache_path /var/cache/nginxlevels=1:2keys_zone=my_cache:10mmax_size=10ginactive=60muse_temp_path=off;proxy_cache

Nginx 캐시 구성 계획 및 관련 메모리 사용 문제를 해결하는 방법 Nginx 캐시 구성 계획 및 관련 메모리 사용 문제를 해결하는 방법 May 23, 2023 pm 02:01 PM

nginx 캐싱 캐시를 위한 5가지 옵션 1. 전통적인 캐시 중 하나(404) 이 방법은 nginx의 404 오류를 백엔드로 보낸 다음, Proxy_store를 사용하여 백엔드에서 반환된 페이지를 저장하는 것입니다. 구성: 위치/{root/home/html/;#홈 디렉토리 만료1d;#웹페이지 만료 시간 error_page404=200/fetch$request_uri;#404 ​​​​/fetch 디렉토리로 이동} Location/fetch/{#404 이동 hereternal ;#이 디렉터리는 외부에서 직접 액세스할 수 없음을 나타냅니다.

캐시, 롬, 램의 특징은 무엇인가요? 캐시, 롬, 램의 특징은 무엇인가요? Aug 26, 2022 pm 04:05 PM

캐시의 특징: CPU와 메인 메모리 사이에 설정되어 있는 1~2레벨의 고속, 소용량 메모리로, 컴퓨터의 전원이 꺼지면 정보가 자연스럽게 사라집니다. ROM의 특성: 메모리에서 데이터를 읽을 수만 있고 정보를 쓸 수는 없습니다. 컴퓨터 전원이 꺼진 후에도 데이터는 계속 존재합니다. 램의 특징: 메모리에서 데이터를 읽고 정보를 메모리에 쓸 수 있습니다. 프로그램을 실행하는 데 필요한 명령, 프로그램 및 데이터를 저장하는 데 사용됩니다. 컴퓨터 전원이 꺼지면 정보가 자연스럽게 손실됩니다.

Spring Cache 기반 Caffeine+Redis 2차 캐시 구현 방법 Spring Cache 기반 Caffeine+Redis 2차 캐시 구현 방법 Jun 01, 2023 am 10:13 AM

1. 하드코딩 캐시란 무엇인지 알아보겠습니다. SpringCache를 배우기 전에는 캐싱을 하드코딩해서 사용하는 경우가 많았습니다. 사용자 정보의 쿼리 효율성을 높이기 위해 샘플 코드는 다음과 같습니다. @AutowireprivateUserMapperuserMapper;//사용자 쿼리 publicUsergetUserById(LonguserId){//Define 캐시 keyStringcacheKey= "userId_

See all articles