Хотя Донал Феллоуз, скорее всего, понял это правильно, я хочу указать на одну (типичную) ошибку с подходом Даниэля: когда кто-то использует язык высокого уровня, который имеет концепцию «строки символов» - в отличие от«строка байтов» - один из них должен проявлять особую осторожность при подготовке обрабатываемых данных для помещения в «провод».
В этом случае «провод» - это протокол HTTP, поэтому данныеподготовленный должен, скорее всего, пройти что-то вроде [encoding convertto utf-8 ...]
или что-то подобное в зависимости от цели.(Кстати, Tcl имеет довольно обширную поддержку двоичных строк, так что они могут быть добавлены, объединены и т. Д., Не теряя своего свойства быть двоичным .)
Следующее, что может бытьРекомендуется привыкнуть к сетевому анализатору (или определенному анализатору HTTP).Отличное кроссплатформенное решение - Wireshark , на платформах Windows - Сетевой монитор (универсальный анализатор) и Fiddler (специфично для HTTP).Идея состоит в том, чтобы сначала захватить и внимательно изучить «контрольный» сеанс, выполняемый браузером, а затем захватить и проанализировать сеанс неправильного поведения, выполняемый вашей программой.Таким образом, вы просто сравниваете сессии и видите, где генерируемый трафик отличается, когда дело доходит до полезной нагрузки HTTP.