Issue 33067: http.client no longer sends HTTP request in one TCP package (original) (raw)
Issue33067
Created on 2018-03-13 12:06 by christian.heimes, last changed 2022-04-11 14:58 by admin.
Messages (1) | ||
---|---|---|
msg313743 - (view) | Author: Christian Heimes (christian.heimes) * ![]() |
Date: 2018-03-13 12:06 |
https://bugs.python.org/issue23302 changed how http.client sends request. endheaders() no longer sends header and message body in one TCP package if the total payload is smaller than TCP max segment size. https://github.com/python/cpython/blob/3.5/Lib/http/client.py#L934-L936 uses two send calls to send header and body. This causes very simple HTTP servers in embedded devices to fail. Matthew Garrett noticed the bug, see https://twitter.com/mjg59/status/972985566387032064 / https://twitter.com/mjg59/status/973000950439817217 We should try to send requests as one TCP package again. TCP_CORK may do the trick. Or we should fix our custom implementation of send. It has multiple issues, e.g. a fixed buffer. The buffer size is suboptimal for small MTU and jumbo frames. |
History | |||
---|---|---|---|
Date | User | Action | Args |
2022-04-11 14:58:58 | admin | set | github: 77248 |
2018-03-13 17:40:23 | orsenthil | set | nosy: + orsenthil |
2018-03-13 12:06:43 | christian.heimes | create |