前言

作者说:在上一节的内容中,HTTP大佬介绍了他是怎么让服务器和用户达成信息交互的,详细的说明了连接建立过程中用到的一些基本的技术原理,包括请求报文响应报文、建立持久化连接用的Cookie技术等内容。这一节的内容非常有意思,就是那种叫做HTTP状态码的东西。没错,就是上一节中的HTTP报文中的一部分的状态码:200 OK。

状态码的作用

你应该已经知道了,其实我的最根本的作用就是连接服务器老大和用户(人类)。你肯定也知道,世界上并不是所有的东西都能向着自己想象的方向发展。比如说,你喜欢上一个姑娘,最大的心愿自然是和她在一起,但是,人家并不喜欢你,这样,你的心愿就没法达成(扎心了)。这里面让你最终知道你的心愿没法达成的标志是什么?没错,就是人家姑娘给你的反馈:人家并不喜欢你。这也算是一种标志,标志着你们能否在一起,标志着你的心愿是否能够达成。

而我的心愿,自然就是能够帮助用户和服务器老大建立连接,但是,人家服务器老大可忙了,又加上他的身体不太好,经常停机维修,或者是用户自己的问题,并不能完成这个连接过程,这时候,用户就需要得到一种反馈——我和服务器是否建立了连接?如果没有,那么究竟是哪一方出现的问题?

以上的这种需求,就是状态码需要做的事情。

HTTP 状态码负责表示客户端 HTTP 请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。

状态码的组成

状态码如200 OK,由3位数字和原因短语组成。数字的第一位是响应类别,后两位就是个标志,表示是这个类别中的什么状态。

  • 状态码的分类

状态码示例

  • 2xx 请求正常处理完成
状态码名称 描述
200 OK 表示请求别正确处理了,大多数的请求都是这个情况
204 No Content 请求成功,但是返回的响应报文实体没有内容
206 Partial 是对某一部分的内容进行的请求
  • 3XX 需要进行附加操作以便于完成请求
状态码名称 描述
301 Moved Permanently 永久性重定向,表示请求的资源已经被分配了新的URI,讲重定向到新的地址
302 Found 临时性重定向,表示资源已经被分配了新的URI,希望用户在本次访问的情况下能够使用新的URI访问
303 See Other 303与302的功能是相同的,唯一不同的是请求的方式,303要求用户以get方式访问该资源
  • 4XX 客户端错误
状态码名称 描述
400 Bad Request 请求报文语法出现错误
401 Unauthorized 表示发送的请求需要通过请求验证才能继续
403 Forbidden 表明对请求资源的访问被服务器拒绝了
404 Not Found 这个和20OK一样常见,不同的是,这个代表访问的资源不存在,所以404,你懂的
  • 5XX 服务器错误

    从我个人的经验来看,这个问题一般会出现在开发者调试程序的过程中emmmm,bug比较多。。。
状态码名称 描述
500 Internal Server Error web应用出现bug
503 Service Unavailable 表明服务器暂时处于超负载或正在进行停机维护

好了,相信到这里,你应该对状态码有了很深刻的理解了吧,如果你有什么疑问,欢迎qq、微信、邮箱交流,也可以在下面留言。

未完待续……

结语

感谢您的阅读,欢迎指正博客中存在的问题,也可以跟我联系,一起进步,一起交流!

微信公众号:进击的程序狗

邮箱:roobtyan@outlook.com

个人博客:http://roobtyan.cn

如果喜欢我的文章,那么就扫描下面的二维码关注我吧

HTTP协议(三):状态码的更多相关文章

  1. HTTP协议 (六) 状态码详解

    HTTP协议 (六) 状态码详解 HTTP状态码,我都是现查现用. 我以前记得几个常用的状态码,比如200,302,304,404, 503. 一般来说我也只需要了解这些常用的状态码就可以了.  如果 ...

  2. HTTP协议的状态码

    对于Web编程人员来说,熟悉了解HTTP协议的状态码是很有必要的,很多时侯可能根据HTTP协议的状态码很快就能定位到错误信息!今天整理了一下所有HTTP状态码. HTTP状态码(HTTP Status ...

  3. http协议的状态码——400,401,403,404,500,502,503,301,302等常见网页错误代码

    http协议的状态码 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态码. 100(继续) 请求者应当继续提出请求.服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 101( ...

  4. http协议的状态码(200,404,503)

    http协议的状态码 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态码. 100(继续) 请求者应当继续提出请求.服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 101( ...

  5. Java Web学习总结(21)——http协议响应状态码大全以及常用状态码

    http协议响应状态码大全以及常用状态码 当我们在浏览网页或是在查看服务器日志时,常会遇到3位数字的状态码,这3位数字是什么意思呢?其实,这3位数字是HTTP状态码,用来表示网页服务器HTTP响应状态 ...

  6. HTTP协议常用状态码

    HTTP协议常用状态码   <?php    send_http_status(404);   /**  * HTTP Protocol defined status codes * HTTP协 ...

  7. 三方面搞定http协议之“状态码”

    当我们向服务器请求数据的时候,服务器会给我们一个反馈,告诉我们对待我们的请求,服务器处理得怎么样了,而这个反馈,是通过数字来传达的,这个数字就叫状态码. 状态码分为以下几种: 1xx:指示信息--表示 ...

  8. HTTP协议 -- 认清协议常用状态码

    HTTP协议作为web服务的基础,理所应当受到重视,但是周围的同事能够讲清楚HTTP协议的凤毛麟角.既然是基础,就应该早一点掌握,所以近半年(2016-2月——2016年6月),不准备学习新技术了.首 ...

  9. HTTP协议之状态码详解

    转自:http://www.cnblogs.com/TankXiao/ 什么是HTTP状态码 HTTP状态码的作用是:Web服务器用来告诉客户端,发生了什么事. 状态码位于HTTP Response ...

  10. http协议常见状态码含义

    状态码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值: 2xx:成功--表示请求已被成功接收.理解.接受 200(成功)  服务器已成功处理了请求.通常,这表示服务器提供了请求的网页. ...

随机推荐

  1. redheat7 sd 0:0:0:0: [sda] Assuming drive cache: write through(未解决)

    以下是我上网查找的解决办法 1. sd 0:0:0:0: [sda] Assuming drive cache: write through 解决方法:/etc/default/grub 文件里去掉  ...

  2. idea-plugin-easycode

    1.背景 在练习使用mybatis-generator时候,无意间看到博文esaycode(代码神器),https://www.jianshu.com/p/e4192d7c6844,试验完,感觉这个工 ...

  3. 036、Java中三目运算符的使用

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  4. dataGridView与数据源dataTable同步排序

    private void dataGridView1_Sorted(object sender, EventArgs e)         {             string _sortStr ...

  5. 关于如何实现一个Saga分布式事务框架的思考

    关于Saga模式的介绍,已经有一篇文章介绍的很清楚了,链接在这里:分布式事务:Saga模式. 关于TCC模式的介绍,也已经有一篇文章介绍的很清楚了,链接在这里:关于如何实现一个TCC分布式事务框架的一 ...

  6. 3D打印技术的火爆,真的会让传统模具行业没落吗?

    当一种新生事物出现时,人们除了赞美它带来的新畅想外,往往还会对"旧事物"贬低几分--各种淘汰观点总是不绝于耳.但可惜的是,新生事物取代旧事物的事儿并不会必然发生.比如,直到现在广播 ...

  7. JS - input输入框点击回车提交或者进行别的操作

    $("input").keydown(function(event){ if (event.keyCode == 13) {         /* 提交或者别的操作 */ } }) ...

  8. Oracle 子程序、过程、函数

    一.子程序 子程序是一个数据库对象,存在于数据库中,里面存放的是PL/SQL代码,可以完成一定的共能,能被程序和客户端工具直接调用.子程序类似于java中的方法,可以接接收参数,按照是否有返回值,子程 ...

  9. JPA#ManyToMany

    多对多,多个学生选了多个课程. 涉及到的注解(注解的使用看注释):ManyToManyJoinTableJsonIgnoreProperties @Entity @Table(name = " ...

  10. 吴裕雄--天生自然C++语言学习笔记:C++ 命名空间

    假设这样一种情况,当一个班上有两个名叫 Zara 的学生时,为了明确区分它们,在使用名字之外,不得不使用一些额外的信息,比如他们的家庭住址,或者他们父母的名字等等. 同样的情况也出现在 C++ 应用程 ...