2011-09-21 6 views

답변

2
+0

나는 의심 스럽습니다. 다른 사람이 다른 경험이 없는지 보자. – Bozho

+0

3xx에서 특별히 작동하지 않는 이유는 알 수 없다. 당신은 정교 할 수 있습니까? –

+0

@Julian Reschke - 응답 상태가 3xx가 아니라면 위치 헤더가 작동하지 않는다는 것을 의미했습니다. 그래서 200, 그 다음 예고편으로 위치 헤더를 보내면 작동하지 않습니다. – Bozho

1

예를 볼 사용할 수있는 표준 응답 있도록 위치 헤더는 특정 응답 코드 3xx의 함께해야 일을한다는 것입니다.

위치 헤더를 사용하려면 서버가 201 또는 3XX 상태 코드로 응답해야합니다. 또한 내용을 포함해야합니다. HTML에서 일어난 일을 설명하고 리소스에 편리한 하이퍼 링크를 제공하는 메시지 일 수 있습니다. 콘텐츠를 청크 분할해야하고 전송 인코딩 헤더가 있어야하며 "청크"값을 가져야합니다.

이 모든 것이 사실이라면 예고편 머리글에 값 "위치"가 추가 될 수 있으며, 그러면 위치 헤더에서 콘텐츠를 추적 할 수 있습니다.

여기 실제 문제가 있습니다. 이것은 바보 같고 무의미한 것처럼 보입니다. 클라이언트를 새로운 위치로 리디렉션하는 경우 어떤 유스 케이스가있을 수 있지만 컨텐츠가 완성 될 때까지는 그 위치를 알지 못합니까? 나는 이유를 생각할 수 없다. 하지만 아마 하나 가질 수 있을까요? 좋은 유스 케이스가 없다면, 나는 당신이 이것을해야한다고 생각하지 않는다.

: 이유를 생각했습니다. Shiflett는 클라이언트로 전송 된 HTML의 첫 번째 청크가 "우리는 거래를 완료하고 있습니다."라고 말하는 청크 분할 전송 인코딩의 예를 제공합니다. 트랜잭션이 완료되는 동안 시간이 지납니다. 그런 다음 HTML의 두 번째이자 마지막 덩어리가 클라이언트로 전송되어 "이제 거래가 완료되었습니다."라고 표시됩니다. (HTTP Dev 's Handbook p97)이 아이디어를 새로운 파일이 생성 된 201과 결합하십시오. 새 파일의 위치는 서버 처리가 끝날 때까지 알 수 없습니다. 따라서 청크 분할 전송 인코딩을 사용하려는 경우 위치 헤더를 예고편에 넣을 수 있습니다.

두 번째 편집 : 예 : the spec specifically forbids의 헤더 필드는 Transfer-Encoding, Content-Length 및 Trailers이므로 추가 할 수 있습니다.

+0

글쎄, 실제 문제는 대부분의 (모든?) 브라우저가 예고편을 구현하지 않는다는 것입니다. –

+0

충분합니다. 그러나 이것은 브라우저가 아닌 클라이언트가 처리 할 수 ​​있습니다. 비록 내가 왜 당신이 원하는지 아직 모르겠지만 ... –

+0

IE 9, FF 9, 크롬 16 및 사파리 5에서 테스트 (http://www.browserscope.org/network/test)를 실행하십시오. on Win 7). 그것은 예고편을지지하지 않는다고 주장한다. 왜 그런지 알아? –

관련 문제