Closed Bug 224537 Opened 21 years ago Closed 21 years ago

[FIXr]Handling of 1xx provisional responses not RFC2616-compliant

Categories

(Core :: Networking: HTTP, defect, P2)

x86
Linux
defect

Tracking

()

RESOLVED FIXED
mozilla1.6beta

People

(Reporter: jorton, Assigned: bzbarsky)

Details

Attachments

(1 file, 2 obsolete files)

User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.1) Gecko/20031008 Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.1) Gecko/20031008 Mozilla handles provisional responses with the "100" code correctly, but RFC2616 requires that any 1xx responses are handled the same--section 10.1: A client MUST be prepared to accept one or more 1xx status responses prior to a regular response, even if the client does not expect a 100 (Continue) status message. Unexpected 1xx status responses MAY be ignored by a user agent. Reproducible: Always Steps to Reproduce: Here's an nph- CGI script you can use with Apache to reproduce it: #!/bin/sh printf "HTTP/1.1 101 Blah\r\n" printf "Header: foo\n" printf "\r\n" printf "HTTP/1.1 101 Blee\r\n" printf "\r\n" printf "HTTP/1.1 200 OK\r\n" echo "Server: fish" echo "Content-type: text/html" printf "\r\n" echo "This is content!" install this as cgi-bin/nph-101 then request it with Mozilla. Actual Results: Mozilla renders: HTTP/1.1 101 Blee HTTP/1.1 200 OK Server: fish Content-type: text/html This is content! Expected Results: Mozilla should render just: This is content!
Confirmed (based on reading the RFC and LXR), but not tested. I think we just need to change this line in nsHttpTransaction: http://lxr.mozilla.org/seamonkey/source/netwerk/protocol/http/src/nsHttpTransact ion.cpp#591 591 // discard this response if it is a 100 continue. 592 if (mResponseHead->Status() == 100) { 593 LOG(("ignoring 100 response\n")); 594 mHaveStatusLine = PR_FALSE; 595 mResponseHead->Reset(); 596 return NS_OK; 597 }
Status: UNCONFIRMED → NEW
Ever confirmed: true
Attached patch Something like that? (obsolete) — Splinter Review
Attachment #134722 - Flags: review?(darin)
Comment on attachment 134722 [details] [diff] [review] Something like that? r=darin if you update the LOG statement to something like "ignoring 1xx response" ;)
Attachment #134722 - Flags: review?(darin) → review+
Attached patch Better logging (obsolete) — Splinter Review
Attachment #134722 - Attachment is obsolete: true
Attachment #134728 - Flags: superreview?(darin)
Attachment #134728 - Flags: review?(darin)
Comment on attachment 134728 [details] [diff] [review] Better logging no need to log the exact status code. it is already logged in ParseStatusLine. that's why i suggested "ignoring 1xx response\n" since http logging is enabled by default, we should keep it brief (though of course it is already super verbose!)
Attachment #134728 - Flags: superreview?(darin)
Attachment #134728 - Flags: superreview+
Attachment #134728 - Flags: review?(darin)
Attachment #134728 - Flags: review+
Attachment #134728 - Attachment is obsolete: true
taking
Assignee: darin → bz-vacation
Priority: -- → P2
Summary: Handling of 1xx provisional responses not RFC2616-compliant → [FIXr]Handling of 1xx provisional responses not RFC2616-compliant
Target Milestone: --- → mozilla1.6beta
Checked in.
Status: NEW → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: