2012-10-19 9 views
4

Google urlfetch과 파이썬 라이브러리 urllib2의 차이점은 무엇입니까?urllib2 대신 Google AppEngine Urlfetch 사용

Google의 urlfetch에 왔을 때 보안상의 이유로 생각했을 수 있습니다. 아마 Google은 악의적 인 URL 또는 무엇인가 측면에서 더 안전합니까?

Google의 urlfetchurllib2 이상으로 선택해야하는 이유가 있습니까?

답변

5

나는 Google에서 작동하지 않는다. 그래서 이것은 내가 읽은 다양한 GAE 글들로부터의 추측이다. App Engine 인스턴스는 인터넷에 직접적으로 대면하지 않지만 Google 인프라 계층에 묻혀 있습니다. 브라우저가 HTTP 요청을하면 인스턴스로 직접 이동하지 않고 Google 에지 서버에 도달하여 결국 요청을 GAE 인스턴스로 라우팅합니다.

마찬가지로 HTTP 요청을 내보내는 경우 인스턴스는 (urllib2가 정상적으로 수행 할) 소켓을 열지 않고 HTTP 요청을 보내는 다른 Google 에지 서버로 HTTP 요청을 보냅니다. GAE에서 urllib2를 사용하면 urlfetch 위에 실행되는 GAE 특정 버전이 사용됩니다.

0

App Engine에서 표준 라이브러리를 사용하는 데 문제가 없습니다. Url Fetch Api는 urlib2보다 "쉽게"HTTP 요청을하는 서비스입니다. 파이썬의 초보자들에게는 더 무시할 만하며, 예를 들어 비 차단 요청을 쉽게 사용할 수 있습니다.

난 당신이 여기에 몇 가지 보완적인 정보를 알아볼 수 있습니다 제안 : https://developers.google.com/appengine/docs/python/urlfetch/overview

구글이 파이썬 표준 라이브러리에 대한 몇 가지 보안 문제를 발견하는 경우. 나는 수정을 보낼 것이라고 생각한다.)

-2

차이점은 urlfetch에는 기능 인터페이스 만 있고 urllib와 httplib에는 OO 인터페이스가 있습니다. OO 인터페이스는 매우 유용 할 수 있습니다. oauth2 클라이언트 lib에서 좋은 예를 보았습니다. 요청 인스턴스가 클라이언트 lib에 전달되어 토큰이 유효하고 권한이 있는지 확인합니다.

+0

이것은 실제로 어떤 방식 으로든 라이브러리 간의 중요한 부분이 아닙니다. –

8

GAE urllib에서 urllib2 및 httplib는 UrlFetch (Fetching urls in Python 참조) 주위의 래퍼입니다.

urlfetch 모듈의 한 가지 차이점은 Asynchronous requests을 만들기위한 인터페이스를 제공한다는 것입니다.