Google Analytics使用gif get请求为什么不发布请求?

问题描述 投票:2回答:2

Google Analytics使用Get Request.gif image服务器

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

已知信息:如果请求查询字符串很大,那么Google将使用Post Request

现在问题是为什么Post Request总是不管查询字符串是否大而不管。

通过Get Request发送数据会导致安全问题。因为,在Get Request的情况下,参数将存储在浏览器历史记录或Web服务器日志中。

有人可以给出任何支持性的理由,为什么Google Analytics依赖于这两件事情?

http-post httprequest google-analytics-api http-get web-analytics
2个回答
1
投票

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

请注意,POST的使用有一些缺点,浏览器通常会警告不要重新加载通过POST请求的资源(以防止双重数据输入),POST请求不会被缓存(这是一些分析滥用它的原因),代理等。

如果你想使用URL检索大量数据(建议:重新考虑是否有更好的选择),那么有必要使用来自Wikipedia的post:

有时甚至HTTP GET也不太适合数据检索。这方面的一个例子是需要在URL中指定大量数据。浏览器和Web服务器可以限制它们将处理的URL的长度而不会截断或错误。 URL和查询字符串中保留字符的百分比编码可以显着增加其长度,而Apache HTTP Server可以处理URL中最多4,000个字符,Microsoft Internet Explorer在任何URL中限制为2048个字符。同样,如果必须提交敏感信息(如用户名和密码)以及其他数据以完成请求,则不应使用HTTP GET。在这些情况下,即使使用HTTPS加密邮件正文,URL中的数据也将以明文形式传递,许多服务器,代理和浏览器将以第三方可见的方式记录完整的URL。在这些情况下,应使用HTTP POST。


1
投票

POST请求需要ajax调用,因为http://en.wikipedia.org/wiki/Same-origin_policy而无法正常工作。但是图像可以很容易地跨站点,因此他们只需要使用所需的URL向DOM添加img标记,浏览器将加载它,将所需信息发送到他们的服务器进行跟踪。

© www.soinside.com 2019 - 2024. All rights reserved.