HTTP1.1(二十)多种重定向跳转方式的差异

一  多种重定向跳转方式的差异

①   重定向应用场景

重定向是HTTP请求一个'重要'的'组成'部分

说明: 自己重点关注'nginx实现'外部重定向的'实现方式'和'实验现象'

讲解'HTTP'的重定向 --> '外部'重定向

说明: 以下'需求场景'都可以'通过重定向'来解决

补充场景: 域名'到期'不想续费,想'换个'域名

开启Preserve log保留之前的所有请求

重定向是如何影响SEO搜索排名

对于 SEO,当'搜索引擎'看到 '301 重定向'时,它们会将'旧页面'的排名传递给'新页面'

②  重定向的流程

细节点: '浏览器'会自动进行'重定向',但是'curl'需要通过'-L'进行重定向

③  Location响应头

Location的wiki讲解

相对路径: '客户端或者浏览器'自行拼接'完整'的路径 --> 基于'scheme host 端口'等

Locatio '相对'是基于'源始'请求的

常见形式: 

   1) '/a/b.html'   --> 基于当前'scheme、host、port'
 
   2) './a/b.html'  --> 基于当前'url'                      --> "不推荐"

   2) 'https://www.wzj.com:8080/a/b.html?name=wzj#hello'  --> '跨域名和端口'

④  重定向响应返回码

1) 重定向'返回码'是'有差别'的,为了讲解它们之间的'差别',先来讲解'两个概念'

  不同的'重定向响应码'意味者什么,主要是从'两个维度'来划分的

  [1]、可不可以'缓存'  --> '永久'重定向'可以缓存'响应,'临时'重定向'不能'缓存

    备注:这个只是'HTTP规范'要求,某些'代理缓存服务器'可能'不遵循'

  [2]、重定向请求'要不要使用原请求'的两个'组成'部分  --> '方法'和'包体'

++++++++ "讲解permanent永久重定向" ++++++++

永久重定向的'2种'状态码: 301、308

共同: 都可以'缓存响应'

差异: 301是'HTTP1.0'引入会改变'method';308是'HTTP1.1'引入的保留原请求'method、body'

引申: 注意nginx以 'if ($method)' 判断逻辑的'合理性'进行重定向判断

SEO:  搜索引擎在'抓取新内容的同时'也将旧的网址交换为'重定向之后'的网址

  

++++++++ "讲解temporary临时重定向" ++++++++

共性: 因为是临时重定向,所以浏览器'不能缓存'临时重定向的响应

SEO: 搜索引擎会'抓取新的内容'而'保存旧'的网址

临时重定向的'3种'状态码: 302、303、307

早期: 百度'http-->https'跳转是'307',现在是'302'

++++++++ "讲解特殊special重定向" ++++++++

⑤   重定向循环次数

  

nginx '死循环'报错: rewrite or internal redirection cycle while processing

nginx重定向次数过多报错

⑥   Location和Referer的区别

++++++++  "REferer响应头"  ++++++++

告知服务器请求的'原始资源的URI',其用于所有类型的请求,并且包括'协议、域名、路径和查询参数'

在以下几种情况Referer'不会'被发送:

  1)来源页面采用的协议为表示本地文件的 "file" 或者 "data" URI;

  2)当前请求页面采用的是'非安全协议',而来源页面采用的是安全协议(HTTPS);

  3)直接输入'网址或通过浏览器书签'访问;

  4)使用 JavaScript 的 'Location.href' 或者是 'Location.replace()';

  5)使用'html5'中noreferrer;

  6)使用iframe的hack写法去除referer

请求头中referer与origin功能相似,但有如下'几点不同':

  1、而referer不论何种情况下,只要浏览器能获取到请求源都会携带

  2、浏览器如果'不能'获取请求源,那么请求头中'不会携带'referer

  3、rerferer不但包括协议、域名、端口,'还包括'路径和参数

Origin和Referer的区别

⑦  遗留

1) nginx  location 使用 '正则',然后'使用alias'

2) nginx相关'重定向'的行为

  [1]、 301、302 、returm 302 、rewrite permanent 

  [2]、 自定义重定向返回的'组成(scheme、host、port、uri)'部分

Cache-Control不生效   鸟哥对于浏览器缓存的理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值