HTTP : 클라이언트가 바이트 범위를 요청할 때 컨텐츠 유형 및 컨텐츠 방향을 어떻게 표시해야합니까?
문제
어제 나는 물었다 PHP의 바이트 범위에 대한 정보. 오늘 내 질문은 - 어떻게 설정 해야하는지입니다 Content-Type
그리고 Content-Disposition
여러 요청한 바이트 범위를 제공 할 때 헤더? 모든 바이트 범위에 대해 반복해야합니까, 아니면 처음에 한 번만 출력해야합니까? 아니면 클라이언트가 이미 요구 사항을 알고 있어야하기 때문에 전혀 출력해서는 안됩니까?
해결책
일반적으로 전체 자원을 반환하거나 일부 리소스를 반환하는 경우 HTTP 응답 헤더는 동일해야합니다 (반복); 물론 컨텐츠 범위 헤더를 제외하고는 다양합니다.
HTTP는 상태가 없으므로 모든 응답이 완료되고 스스로 설 수 있어야합니다. 바이트 범위를 제공하는 경우 실제로 엔티티 태그 (ETAGS)를 사용해야합니다. 따라서 클라이언트가 동일한 자원의 다른 개정에 실제로 속하는 두 개의 별도의 바이트 범위를 요청하고 얻을 수있는 기회가 없습니다.
다른 팁
살펴보십시오 RFC 2616 (특히 섹션 14.16 및 19.2). 클라이언트가 단일 바이트 범위를 요청하는 경우 응답에는 단일 바이트 범위가 포함되어야하며 컨텐츠 유형 및 내용 방지 헤더 값은 동작을 변경하지 않습니다 (제공되는 파일의 유형을 반영해야 함). 그러나 클라이언트가 단일 요청에서 여러 바이트 범위를 요청하는 경우 응답은 대신 콘텐츠 유형의 "multipart/byteranges"를 사용해야하며 본문 내부의 각 부분은 자체 컨텐츠 유형 헤더를 지정합니다.