david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

[http] gPXE is a HTTP/1.0 client, not a HTTP/1.1 client

gPXE is not compliant with the HTTP/1.1 specification (RFC 2616),
since it lacks support for "Transfer-Encoding: chunked".  gPXE is,
however, compliant with the HTTP/1.0 specification (RFC 1945), which
does not require "Transfer-Encoding: chunked" to be supported.

The only HTTP/1.1 feature that gPXE uses is the "Host:" header, but
servers universally accept that one from HTTP/1.0 clients as an
optional extension (it is obligatory for HTTP/1.1).  gPXE does not,
for example, appear to support connection caching.  Advertising as a
HTTP/1.0 client will typically make the server close the connection
immediately upon sending the last data, which is actually beneficial
if we aren't going to keep the connection alive anyway.
This commit is contained in:
H. Peter Anvin 2008-03-31 05:01:08 -07:00
parent feade5da6e
commit b107637008
1 changed files with 1 additions and 1 deletions

View File

@ -393,7 +393,7 @@ static void http_step ( struct process *process ) {
if ( xfer_window ( &http->socket ) ) {
process_del ( &http->process );
if ( ( rc = xfer_printf ( &http->socket,
"GET %s%s%s HTTP/1.1\r\n"
"GET %s%s%s HTTP/1.0\r\n"
"User-Agent: gPXE/" VERSION "\r\n"
"Host: %s\r\n"
"\r\n",