【网络原理9】HTTP响应篇

 在前两篇文章当中,已经分别介绍了HTTP是什么,以及常见的请求头当中的属性。
【网络原理7】认识HTTP_革凡成圣211的博客-CSDN博客HTTP抓包,Fiddler的使用https://blog.csdn.net/weixin_56738054/article/details/129148515?spm=1001.2014.3001.5502

【网络原理8】HTTP构成篇1_革凡成圣211的博客-CSDN博客HTTP的常见属性,URL,User-Agent,Refer,get 和post的区别https://blog.csdn.net/weixin_56738054/article/details/129180661?spm=1001.2014.3001.5502

下面,继续谈一下HTTP响应头当中有哪些比较常见的属性。

目录

一、HTTP状态码(HTTP响应行当中的内容)

①状态码:200 

②状态码:404

③状态码:403

④状态码:405

⑤状态码:500

⑥状态码:504:Gateway Timeout

⑦状态码:302:Move temporarily(临时重定向)

Location和Refer的区别就在于:

⑧状态码:301(永久重定向)

二、HTTP响应"报头"(header)

三、HTTP的1.1/2.0/3.0三个版本的对比


一、HTTP状态码(HTTP响应行当中的内容)

这一个状态码的含义,也在前两篇文章当中提到了。下面,介绍几个常见的状态码

①状态码:200 

 状态码显示200,说明浏览器很顺利地获取到想要的内容了,没有出什么bug。


②状态码:404

请求的资源不存在,这个时候就会提示404不存在。


③状态码:403

       403提示当前资源存在,但是由于用户的权限不够,因此不可以访问。关于怎样校验权限,目前大部分是使用spring-security来校验权限。


④状态码:405

这个状态码的含义是:Method Not Allowed,这种状态比较少遇到。

例如:当用户使用get访问服务器,但是服务器的接口只支持post。


⑤状态码:500

      这个状态码的含义是服务器内部出现错误。

      例如在运行的时候出现了异常(Exception),那么就会显示500,也是不那么常见的情况。

       在Tomcat启动之后,如果运行过程当中出现了异常,会经历以下4个步骤:

        步骤1:如果异常位于try-catch代码块当中,就会按照catch代码块的逻辑来处理;

        步骤2:如果在没有catch进行处理,那么这个异常就会沿着调用栈不断向上传递。

        步骤3:如果在最顶层的Servlet当中依然没有处理的了,那么这个异常就会交给Tomcat来进行处理。

         步骤4:如果Tomcat也没有办法处理,这个时候就会抛出500错误代码,然后把异常交给jvm进行处理,也就引发了程序的崩溃


⑥状态码:504:Gateway Timeout

指的是服务器当前太繁忙了,来不及响应。


⑦状态码:302:Move temporarily(临时重定向)

关于请求转发和重定向的区别,会在后续的文章当中讲到。‘

其中,登录跳转就是一个常见的重定向场景。

 里面有一个字段,叫做Location:

 其中,这一个字段的含义就是:需要跳转的资源在哪里

Location和Refer的区别就在于:

  ①Refer是HTTP请求头当中的内容,Location是HTTP响应头当中的内容。

  ②Refer描述的是当前页面是从哪里跳转过来的,而Location描述的是这个请求需要重定向到哪个页面。


⑧状态码:301(永久重定向)

301的状态码代表的含义是永久重定向


服务器的状态码有很多,总结一下:它们大致都有一下特点:

状态码含义
2开头表示响应成功
3开头重定向
4开头客户端出错(请求出错)
5开头服务器内部出错

 其中,1和6开头的状态码,都比较少见。


二、HTTP响应"报头"(header)

       HTTP响应是由HTTP响应行HTTP响应头,还有响应的正文一共3部分组成的。

       前面我们也提到了:HTTP的响应头是由多组键值对组成的。下面,将来聊一下一个常见的键值对:Content-Type,它描述的是响应的body的格式,有以下几种常见的格式:

    1) text/html:返回的是一个html页面

    2) text/css:返回的是一个css页面

    3) application/javascript:返回的是一个javascript页面

    4)application/json:返回的是一串json格式的字符串


三、HTTP的1.1/2.0/3.0三个版本的对比

HTTP版本连接方式安全性传输层协议头部是否压缩   传输格     式是否支持多路复用
HTTP1.0连接:一个连接对应一个请求明文传输TCP纯文本
HTTP1.1

连接:一个连接可以被同一个客户端多次请求复用;

支持管道传输:客户端可以发起多个请求,只要第一个

请求发出去了,不必等其回来,就可以发送第二次请求。

明文传输TCP纯文本
HTTP2.0密文传输(基于HTTPS)TCP

如果你同时发出多个请求,他们的头是一样的或是相似的

(在客户端和服务器同时维护一张头信息表,所有字段都会存入这个表,生成一个索引号,以后就不发送同样字段了,只发送索引号,这样就提高速度了。)

二进制

使用一个进程/线程同时管理多个socket。会根据request的id号来完成请求的分发

HTTP3.0UDP

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值