Security 使用Google AppEngine Urlfetch代替urllib2

Security 使用Google AppEngine Urlfetch代替urllib2,security,google-app-engine,urllib2,choice,urlfetch,Security,Google App Engine,Urllib2,Choice,Urlfetch,Google的urlfetch与python库urlib2有什么区别 当我看到谷歌的urlfetch时,我想可能有安全方面的原因。也许谷歌在恶意URL或其他方面更安全 有什么理由让我选择谷歌的urlfetch而不是urlib2?在appengine中使用标准库没有问题。Url Fetch Api只是一种使HTTP请求比urlib2更“容易”的服务。对于Python新手来说,这更容易理解,例如,您可以轻松地使用非阻塞请求 我建议您在此处阅读一些补充信息: 如果google在Python标准库上发现

Google的
urlfetch
与python库
urlib2
有什么区别

当我看到谷歌的
urlfetch
时,我想可能有安全方面的原因。也许谷歌在恶意URL或其他方面更安全


有什么理由让我选择谷歌的
urlfetch
而不是
urlib2

在appengine中使用标准库没有问题。Url Fetch Api只是一种使HTTP请求比urlib2更“容易”的服务。对于Python新手来说,这更容易理解,例如,您可以轻松地使用非阻塞请求

我建议您在此处阅读一些补充信息:


如果google在Python标准库上发现一些安全问题。我想它会发出一个补丁;)

我不为谷歌工作,所以这只是我读过的各种GAE帖子中的猜测。应用程序引擎实例并不直接面向互联网,而是隐藏在谷歌基础设施的各层背后。当浏览器发出HTTP请求时,它不会直接发送到您的实例,而是会点击Google edge服务器,最终将请求路由到GAE实例


同样,当发出HTTP请求时,您的实例不仅打开套接字(urllib2通常会这样做),而且它会将HTTP请求发送到另一个发出HTTP请求的Google edge服务器。在GAE上使用urllib2将使用在urlfetch之上运行的GAE特定版本。

区别在于:urlfetch只有一个功能接口,urllib和httplib有一个OO接口。OO接口可能非常有用。我在oauth2客户机库中看到了一个很好的示例,其中请求实例被传递到客户机库,以检查令牌是否有效和经过授权

注意,在GAE urllib中,urllib2和httplib只是UrlFetch的包装器(请参阅)


urlfetch模块的一个不同之处在于,它为您提供了一个用于制作的接口。

这实际上并不是两个库之间区别的重要部分。