2009-11-30 7 views
11

브라우저에서 PDF를 표시 할 때 대부분의 (IE, FF, Safari, Chrome, Opera) PDF 파일에 대한 다중 HTTP 요청이 이루어 집니까? WebTrends Web Analytics 소프트웨어와 통합하는 문제를 해결하기 위해 노력 중이며 PDF 관련 통계가 잘못된 것처럼 보입니다. 지원에서는 WebTrends가 트래픽, 다운로드 등을 결정하기 위해 웹 서버 액세스 로그를 구문 분석하기 때문에 정확한 PDF 다운로드를 결정하기가 어려워 졌기 때문에 다음과 같이 설명했습니다.
사용자가 PDF를 클릭하고 PDF를 통해 Acrobat Reader 브라우저 플러그인을 사용하면 각 페이지가 한 번에 하나씩 다운로드됩니다. 사용자가 50 페이지 PDF의 처음 2 페이지 만 볼 경우 처음 두 페이지 만 다운로드됩니다.브라우저에서 PDF를 표시 할 때 대부분의 브라우저에서 여러 개의 HTTP 요청을 처리합니까?

이것은 (나에게 HTTP 요청이 어떻게 바이너리 파일의 일부분만을 제공 할 수 있었 을까?) - 나는 구글을 검색해 왔지만 이것에 대해 아무 것도 발견하지 못했다.

나는이 현상을 관찰 할 수 있는지 내일 HTTP 트래픽을 탐지 할 수있는 IE 소프트웨어를 찾으려고 노력할 것이다.

모든 정보/생각은 감사하겠습니다.

+1

답변이 없지만 http는 콘텐츠 범위 헤더를 통해 파일의 일부를 다운로드하는 것을 지원합니다. 아마도 PDF는 그것을 사용합니다 ... * shrugs * – Will

+2

필자는 이러한 IP 패킷 스니핑을 위해 매우 편리하다고 생각했습니다. –

+0

[RFC 2616, 섹션 3.12] (http://greenbytes.de/tech/webdav/rfc2616.html#rfc.section.3.12)를 참조하십시오. –

답변

13

사이트가 HTTP 응답이 같은 헤더를 반환하는 경우 :

Accept-Ranges: bytes 

PDF 파일 리더는 문서의 몇 KB를 읽은 후 intitial 연결을 종료됩니다. 그런 다음, 레인지 요청 헤더와 함께 필요에 따라 문서의 섹션을 요청 예컨대 :

Range: bytes=242107-244329, 8060-76128 

http://www.ovationguitars.com/img/OVmanual.pdf입니다 않는 URL의 예.

는 반환하지 않는 경우 동의-범위는 다음 PDF 문서가 당신은 HttpWatch를 사용하여 IE에서 PDF 리더의 동작을 볼 수 있습니다

단일 요청 (예를 들어, http://manuals.info.apple.com/en/iphone_user_guide.pdf)에서 다운로드됩니다 헤더.

** 면책 조항 :이 답변은 HttpWatch를 2016년 6월의 같은 나를 위해 **

+0

매우 흥미로 웠습니다. 그래서 이것이 가능한 것으로 보이지만 추가 조사 후 (HTTPRequests/Respsonses 시청) IE 용 Adobe Acrobat Reader 플러그인이 이러한 방식으로 요청을 생성하는 것을 지원하지 않는다는 것을 나타냅니다 (그리고 아마도 PDF를 제공하는 웹 응용 프로그램도 마찬가지입니다). 나는 어떤 합성 요청에 바이트 범위를 보냈다.) – empire29

+0

크롬에서 iphone_user_guide.pdf (https://manuals.info.apple.com/MANUALS/1000/MA1565/en_US/iphone_user_guide.pdf)를 확인했는데 2 건의 요청이 있습니다. : 첫 번째 것은 괜찮습니다. 두 번째 것은 취소됩니다. –

+0

나는 아직도이 행동을보고 있으며 Fiddler는 "accept-ranges"헤더가 관련되어 있지 않음을 보여줍니다. –

0

내 생각에 당신이 자리에있다 : 귀하의 플러그인은 PDF를 요청으로 분할 할 수 없으며, 또한 그렇게해서는 안됩니다.

요청 (단일 요청)에서 PDF 파일을 제공하고 플러그인으로 표시하는 웹 응용 프로그램이 있습니다. 더 이상 정보를 얻지 않고 PDF 전체를 표시합니다.

또한 HTTP 스니퍼를 찾으려면 Fiddler을 시도 할 수 있습니다. 웹 사이트 디버깅 중에 유용하다는 것을 알았습니다.

+0

최신 Adobe Acrobat Reader 플러그인을 사용하여 IE (회사의 공식 "지원"브라우저)를 사용하여 HTTPWatch에서 체크 아웃 한 결과 전체 PDF가 다운되었습니다. 바이트 범위에 관한 헤더에서 아무 것도 보지 못했습니다. – empire29

2

의 업체, 파이어 폭스와 IE11은 하나 전화를 걸 SIMTEC 제한에 의해 게시했습니다.

Content-Disposition 헤더가 없으면 Chrome에서 두 번 전화를 겁니다. 누락 된 경우 Chrome은 두 가지 GET을 수행하고 두 번째 GET을 취소 한 것으로 보이며 브라우저에 PDF를 표시합니다. 서버는 초가 취소 된 것을 모르고 PDF를 다시 보냅니다.

이 헤더가 서버에서 전송되면 Chrome은 한 번만 전화를 걸고 파일을 실행하거나 저장합니다.내가 가지고있는 경우

Content-Disposition: attachment 

크롬에서 PDF occours에

Content-Disposition: attachment; filename=test.pdf 
+1

이 헤더를 추가하면 두 번째 호출이 차단되지만 Chrome이 첨부 파일처럼 PDF를 다운로드하고 즉시 열지 않습니다 브라우저 내에서. – kman

+0

예. 나는 아직도 그것이 버그라고 생각하지만, 이것은 그것의 한 방법이다. –

+2

문제는 Chrome의 PDF 플러그인입니다. Content-Disposition : 첨부 파일은 PDF 플러그인을 사용하지 않습니다. 이것이 오류가없는 이유입니다. 자세한 내용은 다음 페이지를 참조하십시오. https://bugs.chromium.org/p/chromium/issues/detail?id=587709 –

0
내 테스트에서

, 이중 요청을 (당신은 또한 ... 사용자가 파일을 저장할 때 사용되는 파일 이름을 제안 할 수 있습니다) REST Console 4.0.2 확장이 사용 가능합니다. 이 확장 프로그램을 사용 중지하면 Chrome이 예상대로 작동합니다 (한 요청 만).

편집 : Instapaper 확장 기능을 사용하면 Chrome에서 PDF에 대한 이중 요청을 처리합니다.

관련 문제