2014-01-08 2 views
0

서버에서 이미지를 요청합니다. 때로는 상태 코드 304와 상태 코드 200이있는 이미지를 반환하는 경우가 있습니다. 서버는 반환 할 상태 코드를 어떻게 결정합니까? 매뉴얼은 파일이 수정되지 않은 경우 304가 반환됨을 나타내지 만 이해가되지 않는다 : 어떤 요청과 비교하여 어떤 버전과 비교하여 수정 되었습니까? 자세히 설명해주세요.이미지 요청 - 응답 상태 200 또는 304

답변

0

참고 : 당신이 If_Modified_Since 헤더를 보낸 경우

RFC

Real world explanation

효과적으로 만 304을 얻어야한다.

1

예를 들어 설명해 드리겠습니다. 다음은 이미지 미리보기 이미지의 요청 및 응답 헤더입니다. 당신이 볼 수 있듯이

Request URL:https://www.gravatar.com/avatar/37c44d25d19d63d3107a8c7154568060?s=32&d=identicon&r=PG 
Request Method:GET 
Status Code:304 Not Modified 

Request Headers 

Accept:image/webp,*/*;q=0.8 
Accept-Encoding:gzip,deflate,sdch 
Accept-Language:en-US,en;q=0.8 
Cache-Control:max-age=0 
Connection:keep-alive 
Cookie:__qca=P0-584450804-1358798303046 
Host:www.gravatar.com 
If-Modified-Since:Wed, 11 Jan 1984 08:00:00 GMT 
Referer:http://stackoverflow.com/questions 
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 

Response Headers 

Accept-Ranges:bytes 
Access-Control-Allow-Origin:* 
Cache-Control:max-age=300 
Date:Wed, 08 Jan 2014 20:27:08 GMT 
Expires:Wed, 08 Jan 2014 20:32:08 GMT 
Last-Modified:Wed, 11 Jan 1984 08:00:00 GMT 
Server:ECS (sea/1C32) 
Via:1.1 varnish 
X-Cache:HIT 
X-Varnish:1925324757 1925322482 

는 요청 헤더에서 If-Modified-Since 필드는 단순히 304을 반환하거나 파일을이 날짜 이후 수정 된 경우 (200)

과 함께 새로운 내용을 반환할지 여부를 결정하는 서버에서 사용
+0

고마워요! 따라서 브라우저가 캐시 된 정보를 기반으로 If-Modified-Since 특성을 정의한다고 가정합니다. 그래서 브라우저가 문서를 캐쉬하지 않았다면 (예를 들어 firts 시간 요청) 헤더에'If-Modified-Since'를 지정하지 않고 서버로부터 상태 코드 200을 얻게됩니까? 파일을 수신하면 캐시에 저장되므로 결과 요청에 해당 속성이 포함될 가능성이 큽니까? –

+0

모든 댓글은 이전 댓글에 내 질문이 있습니까? –

+0

당신은 절대적으로 정확합니다 :) –

관련 문제