Что происходит, когда клиент отправляет повторяющиеся запросы через Fiddler? - PullRequest
0 голосов
/ 31 марта 2019

Я устанавливаю Fiddler на свой компьютер и использую Fiddler в качестве прокси-сервера для мониторинга трафика приложения на моем телефоне. Иногда Fiddler перехватывает повторяющиеся запросы с разными заголовками диапазона.

Например, приложение отправляет 3 HTTP-запроса GET для одного 1000-байтового файла MP4 с другим заголовком диапазона. Первый с «Range: 0-», второй с «Range: 0-499», третий с «Range: 300-999». Fiddler получает все три ответа, чьи тела составляют до 1000 + 500 + 700 = 2200 байт. Но похоже, что Fiddler не отправляет столько данных обратно в приложение.

Я предполагаю, что приложение сначала отправляет запрос "Range: 0-", но перед получением ответа оно отправляет запрос "Range: 0-499" и закрывает первый запрос. Когда первые 300 байтов получены, приложение закрывает второй запрос и отправляет запрос «Диапазон: 300-999» и получает следующие 700 байтов. Это верно? Если это правильно, почему Fiddler загружает все три ответа, которые потребляют дополнительную пропускную способность? Если это неправильно, сколько данных получает приложение?

Кроме того, что будет без прокси? Будут ли переданы 2200 байт для увеличения пропускной способности?

1 Ответ

0 голосов
/ 31 марта 2019

Fiddler - это прокси. Он получает запросы от клиента и отправляет их на сервер. Независимо от того, имеют ли смысл запросы или нет, они не являются оптимальными и не выходят за рамки Fiddler. Его задача - передавать запросы в точности так, как они были получены на сервер (если только вы не используете фильтры или сценарии для изменения или удаления запроса).

Единственная проблема может возникнуть в случае, если клиент закрывает соединение до того, как данные с сервера будут полностью получены. Если вы не используете режим потоковой передачи запросов и ответов Fiddler, они кэшируются для пересылки их по назначению. Поэтому Fiddler может загрузить событие полного ответа, если клиент уже отключился. Я предполагаю, что это случай первого 0-GET-запроса. Может быть потому, что клиент обнаружил, что прокси-сервер используется, он меняет свою схему запроса на более прокси-совместимую систему.

Вам следует использовать Wireshark и перехватывать трафик в случае, если вы не используете Fiddler - может быть, он отличается или Wireshark не сообщит вам (при условии, что трафик не зашифрован по протоколу HTTPS).

...