http中的204和205

基本概念

http协议的200,301,302,304,404,503这些常用的状态码就不再介绍了。这里主要说一下不常见的204和205吧。

204代表响应报文中包含若干首部和一个状态行,但是没有实体的主体内容。主要用于在浏览器不转为显示新文档的情况下,对其进行更新。

打个比方,如果一个表单提交后会跳到a.html,如果a.html的状态码是204,则页面就不会发生跳转,而是停留在当前页面。对于a标签而言,如果链接的响应码是204的话,页面也不会发生跳转。

使用场景:对于一些提交到服务器处理的数据,只需要返回是否成功的情况下,可以考虑用状态码204来作为返回信息,从而省略多余的数据传输。使用ajax时,当只需要知道响应成功或失败的情况,可以用204来代替200,件数多余的数据传输。

205则是告知浏览器清除当前页面中的所有html表单元素,也就是表单重置。


204的运用

我们首先使用ajax请求后台php,提交数据:

<script>
    var result = '';
    var xhr = new XMLHttpRequest();
    xhr.open("get","./returnstatus.php?a=1&b=2",true);
    xhr.onreadystatechange = function(){
        if(xhr.readyState == 4 && xhr.status == 200 || xhr.status == 204){
            result = xhr.responseText;//status为204时,返回主体内容为空;为200时则正常返回
            console.log(result);
        }
    }
    xhr.send();

</script>

后台returnsstatus.php代码接受数据并返回:

<?php
$a = $_GET["a"];
$b = $_GET["b"];

header('HTTP/1.1 204 No Content');
//说明正常,只返回状态码即可
echo("123");//没有指定状态码为204时,是可以正常返回的。有了以后,不返回主体内容。
?>

这里写图片描述

如果这里不指定204状态码,则会默认以200状态码返回,并带上我们echo的“123”,但是如果我们设置了状态码为204,则响应报文的主体则会被忽略,从而减少不必要的数据传输,进一步提高性能。

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值