httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexei Kosut <>
Subject Re: [BUG]: "PDF served by 1.2bX can't be read by Netscape Win95 Acrobat Plugin" on Solaris 2.x (fwd)
Date Thu, 06 Feb 1997 04:22:32 GMT
On Wed, 5 Feb 1997, Rob Hartill wrote:

> My ISP just upgraded to  Apache 1.2b1 which has disabled my ability to
> download the larger PDF documents from my site using Win 95/Netscape
> 3.0 with Adobe Reader plug-in.  The files appear to download properly
> but the Adobe Reader stays minimized on the toolbar and does not open
> the file.  Additionally, a pdf file is not placed in cache.  Other
> operating systems seem to work okay and I can successfully "save link
> as" under Netscape set-up.  Smaller files 15 Kb or so also work fine
> using the plug-in.

I can easily duplicate this with the Mac, so I don't think it's
platform-related. It's not PDF-related, either, since the Netscape
plug-in API lets plugins get byte ranges from Navigator. It must be in
how Navigator does byte ranges.

I just did about an hour of testing with Navigator 3.01 and the
current rev of Apache. I've compared the output of Apache's byterange
to that that Netscape-Enterprise 2.0a4 sends (as seen on Here's what I've found:

1. Netscape sends a request for a PDF file. If it's byte-rangable, it
then stops the request and gets some peices. However, these peices,
when put together with the few kilobytes it received at the beginning,
in fact add up to the entire PDF file. I think it does this because
PDF files store pages in reverse order, so it wants the first page to
come first. At any rate, if I download a PDF file, the screen stays
blank, and Acrobat does not load into the Netscape window, as the bug
report says. However, if I then hit return, so it reloads it from its
cache - remember, Apache has now send Navigator the entire PDF file,
but in bits - Acrobat pops up and correctly displays the entire PDF
file. Odd, since it means that it's reading and storing the file
perfectly in its cache, it's just not passing it on to the plugin.

2. Netscape-Enterprise has a few differences from Apache in its
handling of byte-ranges. First, it uses multipart/mixed instead of
multipart/byteranges (why they do this, I have no clue). They also use
a purely numerical boundary for the multipart files, wheras Apache
uses a hexidecimal one. I tried changing both these things in Apache,
no dice. It still exhibited problem behavior.

Of course, the headers are different as well: the Server header,
Apache sends ETag, and the Date formats are different. However, it
seems unlikely to me that this could be the cause of the problem.

Except for those things, however, both servers send byteranges
*exactly* the same.

(of course, I'm only assuming that it works correctly with
Netscape-Enterprise. To be honest, I don't know - I seem to remember
having downloaded PDF files from them, but I don't know if they're
byteranged or not. It should be pointed out that uses
Netscape-Commerce 1.12, which does not natively support byteranges -
they use a CGI thing instead).

Speaking of which, I've also compared Apache to the PDF files served
from Adobe's web site. The CGI they use is only designed to serve PDF
files, and is not even minimally compliant with the byterange
defenition in the HTTP/1.1 spec (except for the mixed thing,
Netscape's is - it doesn't support If-Range and the rest, but it does
a fine job with plain requests); for example, when you only request
one range, it still gives you a multipart response, which is
illegal. But anyhow, this CGI script produces a substantially similar
response to Apache and Netscape, except that it uses
multipart/x-byteranges, not multipart/byteranges (HTTP/1.1, Apache) or
multipart/mixed (Netscape). It uses a boundary with text in it, not
just numbers, so that's no the problem either.

Ben, I seem to remember you were going to contact Adobe about
this. Did you ever do that? Someone should probably ask Netscape as
well. Has anyone tried the Acrobat plugin in MSIE? I'd be willing to
bet it'd work with Apache, but I don't know. (of course, I don't know
if MSIE supports byteranges at all - I don't think its required to
support plugins, since no files are gauranteed to have ranges - if the
browser doesn't support it, I guess it can tell the plugin that the
file doesn't.)

I'd really like to know what's causing this before 1.2 is released;
even if we decide not to fix it, I'd perfer to at least know
why... Any thoughts?

I'll spend some more time tonight puzzling this over; if I come up
with anything, I'll let you know.

Alexei Kosut <>      The Apache HTTP Server

View raw message