Doc #62074 [Com]: problematic header fields in example

From: 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

« previous php.doc.bugs (#8379) next »