跳转
服务端跳转
跳转发生在服务器上,用户不会有任何感觉。,往往通过代码去控制,因此有些时候我们也不叫做跳转。具体的服务端跳转行为有很多,各个语言技术都有各自的特点。
优点:跳转行为在 server 进行, 一次 tcp 连接完成相关操作,对用户是透明的,不会造成疑惑。
缺点:对用户隐藏了信息,跳转行为都发生在 server 端,对 server 有压力。
客户端跳转
http层跳转
http 跳转是指 server 根据工作情况通过 http 返回状态码,利用 http 的重定向协议指示客户端浏览器跳转到相应页面的过程,一般返回码是 302。跳转发生在服务端发生数据给客户端过程中,用户能够感觉到.
优点:响应速度快,在 http1.1 协议下通过合适的设置可以使用同一个 tcp 连接,节省网络时间,服务器及用户端都不需要进行额外的数据处理工作,节省时间。
缺点:仅仅能做跳转没有其他功能,基于 js 及 html 的跳转可以选择延时跳转,但是 302 无法选择延时跳转等。
应用层跳转
html head 跳转(HTML refresh)
跳转发生在服务端已经将数据传输到客户端以后,用户能够感觉到。
优点:跳转方式灵活,可以指定延时跳转等等
缺点:可能多次建立 tcp 连接,在低速网络下效率更低,浪费客户端的时间。
在 html 代码的 head 中添加特殊标签,如下
表示:5秒之后转到 ffffffff0x 首页,这个跳转需要浏览器具体解析 html 后采能进行。
js 跳转
跳转发生在服务端已经将数据传输到客户端以后,用户能够感觉到
优点:跳转方式灵活,可以指定延时跳转等等
缺点:可能多次建立 tcp 连接,在低速网络下效率更低,浪费客户端的时间。
通过在 html 代码中添加 js 代码,通过 js 代码实现跳转:
这个跳转应该比 html head 跳转更向后延迟。