Doc #62074 [Com]: problematic header fields in example
| From: | phpmpan at mpan dot pl | Date: | Mon, 21 May 2012 08:39:25 +0000 |
| Subject: | Doc #62074 [Com]: problematic header fields in example | ||
| References: | 1 | Groups: | php.doc.bugs |
| Request: | Send a blank email to doc-bugs+get-8379@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=62074&edit=1
ID: 62074
Comment by: phpmpan at mpan dot pl
Reported by: julian dot reschke at gmx dot de
Summary: problematic header fields in example
Status: Open
Type: Documentation Problem
Package: Documentation problem
PHP Version: Irrelevant
Block user comment: N
Private report: N
New Comment:
HTTP is based on MIME and therefore inherits everything that is in MIME except things that are
explicitly excluded by 19.4 or - by a common sense - have no use in HTTP context.
> It's a valid media type, but sending it doesn't help anybody
Can you provide a reference to any _official_ standard or recommendation that confirms that?
"application/octet-stream" is used to prevent clients from guessing content type.
I agree that "Content-Transfer-Encoding" was excluded from HTTP. You're right here.
However I believe that placing it in the example was not a mistake. I think it's an old hack to
get around a bug in some browser (IE?). It should be removed if it's no longer neccessary.
> Not sure what cases you are referring to here. See above.
The "application/octet-stream" type. Initially I wanted to write about
"Content-Disposition" too until I realized you're talking about a different issue in
this case. I've just forget to edit it later.
Previous Comments:
------------------------------------------------------------------------
[2012-05-21 08:02:06] julian dot reschke at gmx dot de
> > header('Content-Description: File Transfer');
> > This header field does not exist in HTTP.
> It does. See 2045 8.
That is MIME. MIME is not HTTP. See <http://www.iana.org/assignments/message-headers/perm-headers.html>.
> > header('Content-Type: application/octet-stream');
> > This header field should either be set to the actual
> > media type, or not set at all.
> This is actual media type and it's perfectly valid content type identifier registered by
> IANA. See 2046 4.5.1.
It's a valid media type, but sending it doesn't help anybody. If you don't know the
media type (and this seems to apply to the sample code), it is much better not to send it at all.
> > header('Content-Transfer-Encoding: binary');
> > This header field does not exist in HTTP.
> It does. See 2045 6.1.
That is MIME. MIME is not HTTP. See RFC 2616, Section 19.4.5 (<http://greenbytes.de/tech/webdav/rfc2616.html#rfc.section.19.4.5>)
and <http://www.iana.org/assignments/message-headers/perm-headers.html>.
> At least the last two cases are also a /de facto/ industry standard, both are widely accepted.
Not sure what cases you are referring to here. See above.
------------------------------------------------------------------------
[2012-05-21 07:32:46] phpmpan at mpan dot pl
> header('Content-Description: File Transfer');
> This header field does not exist in HTTP.
It does. See 2045 8.
> header('Content-Type: application/octet-stream');
> This header field should either be set to the actual
> media type, or not set at all.
This is actual media type and it's perfectly valid content type identifier registered by IANA.
See 2046 4.5.1.
> header('Content-Transfer-Encoding: binary');
> This header field does not exist in HTTP.
It does. See 2045 6.1.
At least the last two cases are also a /de facto/ industry standard, both are widely accepted.
------------------------------------------------------------------------
[2012-05-20 07:48:44] julian dot reschke at gmx dot de
Description:
------------
---
From manual page: http://www.php.net/function.readfile#refsect1-
function.readfile-examples
---
header('Content-Description: File Transfer');
This header field does not exist in HTTP.
header('Content-Type: application/octet-stream');
This header field should either be set to the actual media type, or not set at
all.
header('Content-Disposition: attachment; filename='.basename($file));
This code will break if the filename contains non-token characters, such as ",",
";" or non-ASCII characters. See RFC 6266.
header('Content-Transfer-Encoding: binary');
This header field does not exist in HTTP.
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=62074&edit=1