You could try to capture packet on the wire and/or air , too see who do it!
I have notice that when requests are sent from Firefox on ipad they arrive with a Header and a Body in one packet. So it seems that the splitting is done on the sender's side. It would be great to read somewhere about this kind of peculiarity.
The header/body splitting is pure client things.
i.e. Safari sends request with header/body splitted, Firfox sends request in one
However, the problem is the implement of HTTP server in SDK assumes the request
is one packet. Thus it does not works if you have header/body splitted request.
I think the http server needs fix to properly handle the request from Safari.
Thanks. Yes, I agree. Chrome on ipad also sends all in one packet.
As for the HTTP server, I had to modify it in order to accommodate our needs.
A TCP implementation can split application data as it pleases, that's a fundamental fact about TCP. You can get each header inside individual packets. Theoretically you can get individual characters each in its own packet.
Usually stream reassembly is handled for you by the TCP stack (e.g. socket read in Linux), but in WICED API you get individual packets, so you have to handle it yourself.
It seems like none of application-level protocol implementations on top of TCP in WICED handle fragmentation correctly. A similar bug is in websocket library for months now (that doesn't even compile).
I am going to lock this. Please open a new thread if you have follow up questions.