• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

http响应状态码Header常见属性 — Location属性

武飞扬头像
仲夏夜之梦~
帮助1

在介绍http协议的响应格式时,我们便已经提到了状态码的概念,因为http响应状态行中就包含了响应状态码和状态码的描述信息。下面就来详细了解什么是状态码。

学新通


目录

一、状态码

1、为什么要有状态码

2、状态码的分类

 3、浏览器如何看待状态码

二、重定向状态码 3**

1、重定向的分类

(1) 永久重定向

(2) 临时重定向

2、永久重定向验证

(1) Header常见属性 —— Location属性

(2) 代码测试


一、状态码

1、为什么要有状态码

当我们给服务器发送请求的时候,服务端会根据你的资源路径返回相应的内容。此时就存在多种情况了:

(1) 服务端找到你要的资源,把资源返回给你

(2) 服务端找不到你要的资源

(3) 服务端与客户端的连接断开

... ...

既然存在诸多情况,服务端必须要把自己的处理结果返回给客户端,让客户端知道并及时做出调整,这里的处理结果就是状态码,如 404 (Not Found) 、500 (Bad GateWay) 都是常见的状态码。

2、状态码的分类

状态码大致可以分为以下五大类,4**代表以4开头的状态码,如 404 (Not Found)

(1)  1** :信息性状态码,说明服务端正在处理接收到的请求。

(2)  2** :成功状态码,说明请求处理成功,并返回相应的资源。

(3)  3** :重定向状态码,一般用于网址的更换,比如当我们访问一个网站的时候,由于该网站的URL已经被废弃了,此时服务端会引导我们跳转到一个新的网站。

(4) 4** :客户端错误状态码,最典型的例子就是当服务端找不到我们请求的资源路径时,就会返回404状态码。

(5) 5**:服务端错误状态码,一般是服务端处理请求出错。

学新通

 3、浏览器如何看待状态码

状态码对浏览器而言没有任何指导意义,我们通过浏览器给服务端发送请求,服务端即便是返回404状态码,浏览器本身也不会有任何提示,我们所看到的页面,是服务端因为找不到资源路径,自己返回一个页面。

二、重定向状态码 3**

1、重定向的分类

3**的状态码是有特殊含义的,分为两种情况,永久重定向临时重定向。跟其他状态码不同,重定向是需要浏览器给我们提供支持的,浏览器必须3**状态码。服务端响应3**状态码时,服务端会告诉浏览器要跳转到哪个网址,此时就需要用到响应Header的Location属性

(1) 永久重定向

假设我们请求的资源路径是 /old/member,但是这个路径的内容因版本太旧被废弃了,你要的资源被移动到了其他路径 /new/staff ,此时服务器就会把你的请求路径 引导至 现在资源所在的路径。

说的通俗一点,当我们访问一个网站的时候,该网站的URL已经被废弃了,此时我们会跳转到一个新的网站。

学新通

(2) 临时重定向

当我们跳转到一个新网站的时候,一旦处理完对应的业务就会回到原本的网站,最典型的例子就是我们美团外卖下单以后,会跳转到支付页面,当支付完成的时候,会回到原本的订单页面。

2、永久重定向验证

(1) Header常见属性 —— Location属性

当浏览器响应的状态码为3**时,我们就需要用到这个属性,这个属性会告诉浏览器接下来要访问哪条资源路径。

  1.  
    Location: https://www.百度.com //告诉浏览器,接下来要跳转到百度页面
  2.  
    //(也可以是自己服务器上的路径)

(2) 代码测试

为了方便,我们测试的时候直接就重定向到 www.百度.com,其实也可以重定向到自己服务器上的某个资源所在位置。

  1.  
    std::string http_response = "http/1.1 301 Permanently moved\n"; //响应状态行
  2.  
    http_response = "Location: https://www.百度.com\n"; //重定向跳转位置
  3.  
     
  4.  
    send(sock,http_response.c_str(),http_response.size(),0);

学新通

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgekbff
系列文章
更多 icon
同类精品
更多 icon
继续加载