The fact that headers are sent in different packets makes absolutely *no* difference at the application layer (e.g. HttpClient and the Web server). At the application level, TCP is simply a stream of bytes. The protocol handles packing and unpacking these bytes into packets as it sees appropriate.
There may be some *really small* performance penalty with them split across different packets, but you won't notice it unless you are doing some really serious throughput. At some point I'll looking into better buffering, but right now its an enhancement request. The real problem here is the EBay is doing some seriously strange things and I can't explain it right now. This issue has been reported previously (a couple days ago, I think, check the archives). EBay seems to be sending multiple responses, with separate HTTP/1.1 200 OK headers and *different* content, for single request. I've captured this behavior between EBay and IE using Ethereal so it isn't HttpClient causing EBay's goofiness, but IE seems to handle it better than HttpClient. When I get some time I'll investigate further. One of the next questions that usually comes with when people start peeking under the covers with packet analyzers, is "How come I see a FIN before I see my data?" or other questions related to things not showing up in the expected order. The answer is that that the Internet is a pretty wild and uncertain place and packets will get re-ordered, lost, duplicated, resent and otherwise mangled during their lifetimes. The TCP protocol takes care of all these things and delivers a reliable byte stream to the application. That's all most people will ever need to care about. HttpClient logs everything it reads off the wire (including the multiple 200 responses from EBay) and unless you want to go blind (and bald from pulling your hair out) following TCP sequence numbers and ACKs, that wire level log is about all you'll ever want to look at. Marc "I spend *way* to much time in Ethereal" Saegesser > -----Original Message----- > From: Rick Horowitz [mailto:[EMAIL PROTECTED]] > Sent: Tuesday, April 30, 2002 8:09 PM > To: [EMAIL PROTECTED] > Subject: Why are HTTP POST headers split into multiple packets? > > > When I run my HttpClient application through ethereal > (on linux) I discovered that my POST request to EBay > is sent as 3 IP packets with 77, 169, and 669 bytes, > respectively. > > I'm working on an application that requires that I > login to EBay, and cannot get EBay to accept my login > request...keep getting a generic error message back > with no real information from EBay. > > Anyway, I'm wondering whether sending multiple IP > packets could possibly be causing EBay to reject the > login request, and also wondering why Java sends > multiple IP packets...I don't see anything in the > HttpClient code that would cause this as far as I can > tell. > > Does anyone have any ideas on this subject? Please let > me know. I'll be happy to provide some code or traces > if anyone needs to see what I'm seeing. > > Thanks very much, > > Rick > > __________________________________________________ > Do You Yahoo!? > Yahoo! Health - your guide to health and wellness > http://health.yahoo.com > > -- > To unsubscribe, e-mail: > <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: > <mailto:[EMAIL PROTECTED]> > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>