HTTP 相关概念

重定向

重定向是自动将访问者发送到另一个页面(条目或者条目的章节)的页面。 例如,如果您在搜索框中键入“UK”或点击指向“UK”的链接,您将被带到条目“英国”,页面顶部会出现一个注释:(重定向自UK)。 这是因为页面UK包含特殊的wiki代码,将读者导向到“英国”。通过使用更高级的语法,您还可以创建到目标页面的特定章节的重定向。

重定向(redirect)简单理解为跳转至另一个地址,是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址。所以地址栏显示的是新的URL。

HTTP 状态码 301 和 302 区别

301(Moved Permanently) 和 302(Found) 状态码都表示重定向,就是说浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的 URL 地址,这个地址可以从响应的 Location 首部中获取(用户看到的效果就是他输入的地址 A 瞬间变成了另一个地址 B)—— 这是它们的共同点。

他们的不同在于。301 表示旧地址 A 的资源已经被永久地移除了(这个资源不可访问了),搜索引擎在抓取新内容的同时也将旧的网址交换为重定向之后的网址;

302 表示旧地址 A 的资源还在(仍然可以访问),这个重定向只是临时地从旧地址 A 跳转到地址 B,搜索引擎会抓取新的内容而保存旧的网址。

HTTP 状态码 502 和 504 区别

502(Bad Gateway)是一种HTTP协议的服务器端错误状态代码,它表示作为网关或代理角色的服务器,从上游服务器(如tomcat、php-fpm)中接收到的响应是无效的。

504(Gateway Timeout)是一种HTTP协议的服务器端错误状态代码,表示扮演网关或者代理的服务器无法在规定的时间内获得想要的响应。

通俗的来说,nginx作为一个代理服务器,将请求转发到其他服务器或者php-fpm来处理,当nginx收到了无法理解的响应时,就返回 502 ,即 php-fpm挂了。当nginx超过自己配置的超时时间还没有收到请求时,就返回 504 错误。