30X 状态

在 HTTP 协议中,代表的是重定向的状态。那么301和302区别在哪呢?

301 代表什么?

301 代表的是永久重定向。什么意思呢? 对于 GET 请求, 301 跳转会默认被浏览器 cache。也就是说,用户第一次访问某个短链接后,如果服务器返回 301 状态码,则这个用户在后续多次访问同一短链接地址,浏览器会直接请求跳转地址,而不会再去短链接系统上取!

这么做优点很明显,降低了服务器压力,但是无法统计到短链接地址的点击次数。

302 代表什么?

302 代表的是临时定向。什么意思呢? 对于 GET 请求, 302 跳转默认不会被浏览器缓存,除非在 HTTP 响应中通过 Cache-Control 或 Expires 暗示浏览器缓存。因此,用户每次访问同一短链接地址,浏览器都会去短链接系统上取。

这么做的优点是,能够统计到短地址被点击的次数了。但是服务器的压力变大了。

参考

【1】:微信公众平台《最接地气的短链接系统设计》,孤独烟
【2】: