Как раздельно передать сообщения, которые не помешаются в один пакет?
Курите модель OSI.

Данные в TCP (4 уровень) никак не связаны с тем, что там в GET (7 уровень), ему вообще наплевать.

И ещё подробно раскурите протокол TCP (читайте Куроуза и Олиферов), там просто и понятно объясняется, как TCP понимает, как управлять потоком, как понять, на сколько частей дробить и как понять, что все части собрались воедино.

Ваш протокол 100% будет работать на прикладном, 7-ом уровне и TCP по барабану, шифрованные данные там передаются или нет.
TCP/IP - это набор протоколов, а не только TCP.
Конкретно протокол TCP - это потоковый протокол, ориентированный на соединение.
Потоковый - это значит, что данные для вышестоящего уровня, который использует TCP, прядставляются не в виде отдельных пакетов, а в виде потенциально безразмерного потока байтов.
Так что по TCP вы без труда можете гонять гигабайты, не заморачиваясь на разбиение их по пакетам - TCP сам все разберет на отдельные пакеты, а на принимающей стороне сам все пакеты сложит в поток.
При этом сохраняется порядок байт, а если что-то потеряется при передаче, то будет повторено еще раз.

Протокол, который ориентирован на передачу отдельных сообщений (пакетов) - UDP. Он то же входит в набор протоколов TCP/IP.