HTTP客户端都应该支持的五个特性

在我看来,HTTP客户端必须要支持如下五个特性。

  • 缓存
  • 最后修改时间的检查
  • ETags
  • 压缩
  • 重定向

缓存返回的头如下:

1 Cache-Control: max-age=31536000, public
2 Expires: Mon, 31 May 2010 17:14:04 GMT

最后修改时间返回头如下:

1 Last-Modified: Fri, 22 Aug 2008 04:28:16 GMT

ETags作用同第二点,返回的头信息如下:

1 ETag: "3075-ddc8d800"

压缩:

Accept-encoding :请求头
Content-encoding :响应头

重定向的两个状态码:

1 302 临时重定向,资源被被临时从这里移动走了; (并且临时地址在Location 头里面给出)。
2 301 永久重定向, 它意味着,资源被永久的移动了; (并且在Location头里面给出了新的地址)。

如果你得到302状态码和一个新地址, http规范要求你访问新地址来获得你要的资源,但是下次你要访问同样的资源的时候你应该重新尝试旧的地址。但是如果你得到301状态码和新地址, 你从今以后都应该使用新的地址。

在Python中,开源的httplib2就全都支持上述五个特性,推荐在python编程中处理HTTP时用它。

原文地址:https://www.cnblogs.com/xwang/p/3757226.html