4 ms·
I haven't looked at any code, but I would strongly suspect that it's because either HTTPie or python-requests is using a plain dictionary instead of an ordered
by notdonspaulding 12y ago
I haven't looked at any code, but I would strongly suspect that it's because either HTTPie or python-requests is using a plain dictionary instead of an ordered dictionary under the hood.
- jacquesm 12y agoThat would appear to be a bug to me. When you want to see the headers of such a transaction you want to see them in the order in which they left the server. I checked the server and it looks like CURL has it right. Colorizing is one thing, reordering is quite another, debugging tools should show the situation with as much fidelity as possible.
- diminoten 12y agoRequests does use an ordered dictionary for handling headers.
- zhng 12y agoIt should as order is important.
- Franciscouzo 12y agowww.ietf.org/rfc/rfc2616.txt 4.2 Message Headers The order in which header fields with differing field names are received is not significant. However, it is "good practice" to send general-header fields first, followed by request-header or response-header fields, and ending with the entity-header fields.
- throwaway5752 12y agoYes, if you're implementing a client or server, you should not depend on the order of the headers. Completely separately, when I have a command line client for debugging, I want to see the request and response exactly as they were sent/received, respectively.
- zhng 12y ago> Instances of the same path and name will overwrite each other, with the latest instance taking precedence. Instances of the same path but different names will add additional mappings. > When sending cookies to a server, all cookies with a more specific path mapping should be sent before cookies with less specific path mappings. For example, a cookie "name1=foo" with a path mapping of "/" should be sent after a cookie "name1=foo2" with a path mapping of "/bar" if they are both to be sent. http://curl.haxx.se/rfc/cookie_spec.html http://curl.haxx.se/rfc/cookie_spec.html
- 0xhex 12y agoRequests might but that's irrelevant. Requests is built on top of urllib3 which is built on top of httplib which does use a plain dict. Also the relevant RFC says order is irrelevant.
- jacquesm 12y agoDebugging starts with having an accurate representation of what is going on.
- oneeyedpigeon 12y agoOk, so this tool is only for all the situations in which you don't care about header order.
- gorklin 12y agoShould body chunks when using chunked encoding have their headers spread throughout the body, to have as much fidelity as possible? Or would you like the body to always appear whole regardless of transfer type?