1

Google Analytics использует Get Request для .gif image на серверGoogle Analytics использует gif, чтобы получить запрос, почему бы не отправить запрос?

http://www.google-analytics.com/__utm.gif?utmwv=4&utmn=769876874&utmhn=example.com&utmcs=ISO-8859-1&utmsr=1280x1024&utmsc=32-bit&utmul=en-us&utmje=...

Мы можем наблюдатель, что все параметры передаются в этом Get Request и запрашиваемое изображение не где найден полезный (Its just 1px by 1px Image)

Known Информация:Если запрашивающая строка запроса велика, Google отправляется на Post Request.

Теперь возникает вопрос, почему не Post Request всегда независимо от строки запроса большой или нет.

Будучи данными, отправленными через Get Request, это приводит к проблеме безопасности. Поскольку параметры будут храниться в истории браузера или в журналах веб-сервера в случае Get Request.

Может ли кто-нибудь дать какие-либо обоснованные причины, почему Google Analytics зависит от обеих вещей?

+0

«Передача данных через запрос получения приводит к проблемам безопасности». Зачем? Если вы имеете в виду записи в журналы прокси-сервера, то не может ли злонамеренный оператор-посредник также захватить тело POST? – Rup

ответ

1

Because GET requests is what you use for retrieving information that does not alter stuff.

Пожалуйста, обратите внимание, что использование POST имеет довольно некоторые недостатки, браузер обычно предупреждает о перезагрузке Запрашиваемый ресурс с помощью POST (чтобы избежать двойного ввода данных), запросы POST не кэшируются (поэтому некоторые аналитики злоупотребляют его), проксированные и т.д.

Если вы хотите получить много данных, используя URL (совет: переосмыслить, если бы лучший вариант), то необходимо использовать столб, от Wikipedia:

Бывают случаи, когда HTTP GET менее подходит даже для извлечения данных. Примером этого является то, что в URL необходимо указать большое количество данных. Браузеры и веб-серверы могут иметь ограничения на длину URL-адреса, которые будут обрабатываться без усечения или ошибки. Процентное кодирование зарезервированных символов в URL-адресах и строках запросов может значительно увеличить их длину, и, хотя HTTP-сервер Apache может обрабатывать до 4000 символов в URL-адресе, Microsoft Internet Explorer ограничен 2048 символами любого URL-адреса. Точно так же HTTP GET не следует использовать, когда конфиденциальная информация, такая как имена пользователей и пароли, должна быть отправлена ​​вместе с другими данными для завершения запроса. В этих случаях, даже если HTTPS используется для шифрования тела сообщения, данные в URL-адресе будут передаваться в текстовом виде, и многие серверы, прокси и браузеры будут регистрировать полный URL-адрес таким образом, чтобы он мог быть видимым третьим лицам. В этих случаях следует использовать HTTP POST.

+0

Не очень понятно. Подумайте, если мы запрашиваем изображение, и мы будем изменять материал на странице справа, чтобы отобразить полученную информацию об изображении? Я ценю ссылку [link] (http://en.wikipedia.org/wiki/HTTP#Safe_methods). Это будет более полезно, если вы можете его проинструктировать. –

+1

Если вы используете тот факт, что изображение загружается для изменения данных на сервере, то да, это совершенно верно для использования POST. –

+0

В этом случае вы специально создаете новую информацию, отслеживая информацию на сервере. Вы действительно не заботитесь об изображении, это просто средство избежать http://en.wikipedia.org/wiki/Same-origin_policy. – Yehosef

1

Запрос POST потребует вызова ajax, и он не будет работать из-за http://en.wikipedia.org/wiki/Same-origin_policy. Но изображения легко могут быть кросс-сайтами, поэтому им просто нужно добавить тег img в DOM с требуемым URL-адресом, и браузер загрузит его, отправив необходимую информацию на свои серверы для отслеживания.

+0

Но Google будет легко добавлять подстановочные заголовки CORS на свои серверы изображений, чтобы сделать работу межсайтового сайта для POST. – Rup

+0

Проблема заключается в том, что вы должны добавить его на сервер, на котором возникает запрос (http://en.wikipedia.org/wiki/Cross-origin_resource_sharing#How_CORS_works). Браузер говорит: «Я только разрешу запросы на этот сайт или сайты, на которых этот сайт говорит мне, что они доверяют». Нецелесообразно запрашивать у всех доменов, которые хотят использовать их отслеживание, чтобы добавить заголовок CORS (большинство пользователей не имеют доступа или знаний для этого.) – Yehosef

+0

Я думаю, что это работает по-другому, поэтому дополнительные заголовки просто необходимы Конец Google. В вашей ссылке говорится: «Обратите внимание, что в архитектуре CORS заголовок ACAO устанавливается внешней веб-службой (bar.com), а не исходным сервером веб-приложений (foo.com)». – Rup

Смежные вопросы