Мне кажется, я понимаю, куда вы пытаетесь обратиться с этим вопросом.
Если вы не используете постоянные соединения HTTP, заголовок запроса HTTP GET всегда является первой вещью, которая отправляется через TCPсоединение, поэтому мы можем быть уверены, что начало заголовка HTTP-запроса GET «не начинается в середине какого-либо TCP-пакета».Но имейте в виду, что может быть один или несколько пакетов TCP без каких-либо пользовательских данных, например, только SYN, который может предшествовать пакету TCP с началом заголовка запроса HTTP GET.Также имейте в виду, что заголовок запроса HTTP GET может не содержаться в одном пакете TCP.
Если вы используете постоянные соединения HTTP, начало заголовка запроса HTTP GET для номера запроса N + 1 можетначать в середине TCP-пакета, а именно после окончания HTTP-запроса GET, тело запроса номер N.
Если вы задаете эти вопросы, вы, возможно, «делаете это неправильно».Как уже отмечали несколько других респондентов, в подавляющем большинстве случаев вам, вероятно, следует просто быть TCP-клиентом, иметь дело с потоком данных TCP и позволить коду TCP беспокоиться о пакетах TCP.(Если, конечно, вы не работаете на каком-то специальном оборудовании, которое просматривает отдельные IP-пакеты, когда они пролетают, и пытается выполнить некоторую обработку на уровне HTTP.)