Google的urlfetch
与python lib urllib2
有什么区别?
当我遇到Google的urlfetch
时,我想也许有安全理由。也许谷歌在苹果网或其他方面更安全?
我有理由选择Google urlfetch
而不是urllib2
吗?
答案 0 :(得分:9)
请注意,在GAE urllib中,urllib2和httplib只是UrlFetch的包装器(参见Fetching urls in Python)。
urlfetch模块的一个不同之处是为您提供了制作Asynchronous requests的界面。
答案 1 :(得分:5)
我不为谷歌工作,所以这只是我读过的各种GAE帖子的猜测。 App Engine实例不直接面向互联网,而是隐藏在Google基础架构层之后。当浏览器发出HTTP请求时,它不会直接进入您的实例,而是会访问Google边缘服务器,最终将请求路由到GAE实例。
同样,当发出HTTP请求时,您的实例不仅会打开一个套接字(urllib2通常会这样做),而是将HTTP请求发送到其他Google请求的边缘服务器。在GAE上使用urllib2将使用在urlfetch上运行的GAE特定版本。
答案 2 :(得分:0)
在App Engine中使用标准库没有问题。 Url Fetch Api只是一种服务,可以比urlib2更“轻松”地发出HTTP请求。对于Python中的新手来说,它更容易理解,例如,您可以轻松地使用非阻塞请求。
我建议你在这里阅读一些补充信息:https://developers.google.com/appengine/docs/python/urlfetch/overview
如果谷歌在Python标准库上发现了一些安全问题。我猜它会发送修复;)
答案 3 :(得分:-3)
不同之处在于:urlfetch只有一个功能接口,而urllib和httplib都有一个OO接口。 OO接口非常有用。我在oauth2客户端lib中看到了一个很好的例子,其中请求实例被传递给客户端lib以检查令牌是否有效和授权。