python有一个基础的库叫httplib。httplib实现了HTTP和HTTPS的客户端协议,一般不直接使用,在python更高层的封装模块中(urllib,urllib2)使用了它的http实现。

一直以为urllib2是urllib2的升级版,其实不是。

一篇老外写的文章:

What is the difference between urllib and urllib2 modules of Python?

You might be intrigued 好奇的by the existence of two separate URL modules in Python - ​​urllib​​ and​​urllib2​​. Even more intriguing: they are not alternatives for each other. So what is the difference between ​​urllib​​ and ​​urllib2​​, and do we need them both?

​urllib​​ and ​​urllib2​​ are both Python modules that do URL request related stuff but offer different functionalities. Their two most significant differences are listed below:

 

  • ​urllib2​​ can accept a ​​Request​​ object to set the headers for a URL request, ​​urllib​​ accepts only a URL. That means, you cannot masquerade your User Agent string etc. urllib2能设置request header ,urllib不能
  • ​urllib​​ provides the ​​urlencode​​ method which is used for the generation of GET query strings,​​urllib2​​ doesn't have such a function. This is one of the reasons why ​​urllib​​ is often used along with ​​urllib2​​.

      urllib提供urlencode功能。

For other differences between ​​urllib​​ and ​​urllib2​​ refer to their documentations, the links are given in the References section.

 

Tip: if you are planning to do HTTP stuff only, check out httplib2, it is much better than httplib or urllib or urllib2.

Exercise

  1. What is User Agent?
  2. What is the difference between GET and POST request methods?
  3. What is HTTP?

References

  1. urllib
  2. urllib2