http_code 301和302区别
301 Moved Permanently 永久移动
表示被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一。
后台会在响应头中返回 Location 字段,其中包含了需要重定向的新地址,浏览器接收响应之后会重定向到这个地址。如果没有额外指定,这个响应默认会被浏览器缓存。当下次再请求的时候,浏览器不会向服务器发送请求,而是直接从缓存中获取需要重定向的新地址
302 Moved Temporarily 临时重定向
要求客户端执行临时重定向。由于这样的重定向是临时的,客户端应该继续向原有地址发送请求。
这个响应默认不会被浏览器缓存,只有在 Cache-Control 或 Expires 中进行指定的情况下,这个响应才会缓存。新的临时性的 URI 应该在响应头的 Location 字段返回。没有指定缓存的情况下,当下次再请求的时候,浏览器会继续发送请求给服务器
短链中为什么使用302重定向?
301 代表永久重定向,也就是说第一次请求拿到长链接后,下次浏览器再去请求短链接,浏览器不会再去请求短链接的服务器了,而是直接从浏览器缓存里取。这样有一个问题,如果服务器需要获取用户的点击数,如果浏览器缓存了长链接,服务器就没办法获取到短链接的点击数了,所以一般不采用 301