Rails: Как определить размер ответа http, который сервер доставляет клиенту? - PullRequest
1 голос
/ 19 марта 2012

Я запускаю приложение Rails 3.2.2 на Ruby 1.9.3 и на своем производственном сервере запускаю Phusion Passenger / Apache Server.

Я доставляю относительно большое количество объектов данных в формате JSON, которые содержат избыточные данные из связанной модели, и я хочу знать, сколько байтов сервер должен доставить и как избыточный контент может быть скопирован сервером и как избыточные данные влияют на размер ответа http, который должен быть отправлен.

Спасибо за вашу помощь!

1 Ответ

1 голос
/ 20 марта 2012

Если вы просто хотите узнать в общем, сколько данных отправляется, используйте curl или wget, чтобы сделать запрос и сохранить его в файл - размер файла (приблизительно) равен размеру ответа, не включая заголовки, которые обычно маленькие. Распакуйте файл, чтобы узнать, сколько фактически отправлено по сети.

Еще круче, используйте инструменты разработчика вашего любимого браузера (что такое Chrome, верно?). Выберите вкладку «Сеть», затем щелкните выполненный запрос GET (или PUT или POST) и проверьте его. Одна вкладка будет содержать заголовки ответа, одна из которых, вероятно, будет содержать заголовок Content-Length, при условии, что ваш сервер настроен на gzip, вы сможете увидеть, какое сжатие вы получаете (сравните несжатый с Content-Length). Все время у вас есть, так что вы можете увидеть, сколько времени требуется, чтобы установить соединение, чтобы сервер выполнил свою работу, чтобы сервер отправил обратно данные и т. Д. Прекрасные инструменты для понимания того, что на самом деле происходит под прикрытием. .

Но повторяя комментарий Алекса (заглавная A) - если вы отправляете тонну данных в запросе AJAX, вы должны думать об архитектуре и дизайне в большинстве случаев. Не все, но большинство.

...