00:01
大家好,欢迎大家继续收看上硅谷的Linux云计算视频,我是刘超老师。那我们本节课呢,来讲一下我们这个。网络服务当中最后一个面试题,那就是我们网络服务当中的这个HTP的状态码,它其实呢,还是属于我们的web服务器方向的。大家会发现我们讲了,大家有这个。呃,八九道这个面试题,当然加上我们的扩展题目,有将近小二十多道面试题,那在这么多的面试题当中呢,我们会有将近呃一半的面试的题目都是和web服务器相关的,那由此你们就应该能看得出来,我们在生产环境中,呃,它的一个服务应用占比肯定是以web服务器居多的啊,其他呢,都是一个一些辅助性的,那再一个呢,就是。在我们的面试过程中。肯定问到的和web相关的也是最多的,也是最多的,那这次呢,我们给大家总结一下相关的一些HTP请求的状态码那。
01:04
这是因为我们这个。这个之前有很多面试题当中都包含这样一个信息,那。回答的时候呢,教大家如何来回答这一套这个状态码问题的这种解决方案OK。首先我们来看一下这个题目啊。写出几个常见的APP状态码,并解释原因。注意,同样这个问题还是有坑啊。还是有空。那写出几个常见的,所谓常见就是容易出现的状态吗?那你不能写那种比较偏僻的,比较很难出现的,或者说多少次不如出现一次的,就是很孤僻的问题那种不要写,那所以说一定要写有代表性的。啊,OK,并解释这种状态码出现的一些原因,OK。那这个地方呢,我给大家总结了这种。呃,状态码的分类,以及每一个状态码对应的一个出现的一个功能,OK,大家呢,可以把这个,呃,我们的这个。
02:01
本次这个面试题总结的里边这个资料当做一个手册啊,以后这个复习的时候,可以照着这个手册当中的内容来进行复习,OK。首先呢,状态码分类分为五大类,那呃,其实我们常见的啊,其实我们常见的啊,主要是四和五这两类特别常见,那其他的呢,321啊,我们一般都看不到,当然二是能看到的,其他那些我们很少见,但是是有的啊,是有的。那这么多不同的这个状态码,他们是怎么分的呢?注意1234打头。分别是五类不同的方向的这个状态码,比如说一打头的,一般情况下指的是一些常见信息,指的是服务器收到请求之后的一些处理上的一些信息。这种状态嘛,一般。过程中就完事了,很少,我们很少见啊,OK,浏览器上肯定是见不到的,第二个就是二开头的,二开头的,二开头的一般指的是什么?对于用户请求处理,处理成功的一些操作,那这种对于客户端来说也是看不到的,也是只有在服务器端的日志上才可以被看到。
03:15
第三种呢,一般指的是重定向啊,需要进一步操作已完成请求,这种同样。这种操作呢,在客户端一般也是感觉不出来的啊。一般情况下,这种操作也是只有在服务器端的日志中才能看到,所以说大家会发现啊,前三种一般情况下用户一般都用不到。遇不到,或者说你可以这样,也就是在浏览器上一般见不到一到三这几种。错误的代码提示。或者说就是HTP的状态码的提示,但是呢。在我们的服务器端,这些还都是相对比较常见的,都有啊,我们。可以通过一些什么日志文件看到这些状态吗?那其次呢,是四和五两类常见的错误代码,注意两类常见的错误代码,那既然是错误代码了,我们一般情况下在我们的客户端上都可以看到,那四开头的错误代码,一般是由客户端错误导致的,注意一般是由客户端错误导致的。
04:19
OK,比如说请求包含对应的一些语法错误,或者是无法完成的一些请求,都会报四零几的错误。还有五几级的错误,那一般指的是服务器上发生的错误。客户端在连接服务器的时候,服务器没法进行正常用户的处理,这个时候就是服务器的故障,那服务器的故障一般报五零几那。大家一定要记住啊,五类不同的响应代码代表五类不同的方向,它们呢,各自的唯一数字有唯一性,OK。这次呢,我们就来把这个对应的1234里边这些代码给大家捋一遍啊,给大家捋一遍。首先呢,这个是一打头的这种状态码啊,我们就给大家找了两个,一个呢是100这种呢,指的是继续处理用户请求,客户端应该继续请求我们。
05:10
的服务器,第二例呢叫101。101这种情况呢,也是相对比较常见的,指的是切换协议版本。切换版本,有些时候呢,我们去访问服务器的时候啊,我们所使用的这个访问的协议就是HTTP的协议。可能是某某一个低版本的什么1.1啊之类的,那我们如果想去访问我们的这个服务器时,需要更高级版本,可以自动的切换成什么HP的2.0啊之类的,哎,自动进行一个切换,那切换的时候就会有一个101的一个状态码。这是一些信息,你可以理解为就是一个information,一个信息,而不是报错啊,而不是报错OK。二级级呢则比较多了,那则比较多了,那么最常见的其实就应该是200,那就是用户请求成功,并且呢,用户请求的一般是get和post,然后呢,我们并且对用户的请求进行了一个处理,所以说一般情况下我们会在日志里。
06:08
常见的200种代码。啊,200种代码。那再一个就是201。这个指的是已经创建了。一个新的请求的连接,并且为用户处理了新的请求资源。然后呢?Accept指的是已接受用户的请求,并。写什么呢啊?记录了处理状态,这个用户的请求虽然过来了,虽然处理了,但是没有处理完,所以说这个时候的状态叫accept,但是呢,并不是OK啊OK。再就是203 203呢指的是非授权信息请求成功,但是我们返回的这个信息和原始服务情况的信息是什么不一样的,或者说不存在原始服务器上的。那也就意味着是原始服务器上没有的数据,反而请求到的数据是一个副本信息那。以为是类似于缓存信息。
07:01
204呢指的是请求内容是空的,服务器虽然处理用户请求,但是服务器并没有返回任何的新的内容,也就是说你的网页没有任何更新,你请求了之后还是原来的页面,那这种时候一般是204没有新的请求。再一个就是205。Reset content,这个可重置指的是我们这个用户请求页面之后呢,发现这个页面有所更新,这个时候会重置我们客户端,也就是说浏览器上的这个。文档视图。想生成新的这种表单,然后来展示新的页面啊。产生新的,比如说你可以列为就是页面的更新。206呢?一般指的是什么部分内容?服务器成功处理了部分的get请求,就是用户的部分请求,用户可能是同时请求了多个资源,但是多个资源当中只有某些资源处理成功,那可以用206来显示处理成功的。那注意,这些都是处理成功的代表。
08:03
再来看三开头的。三开头呢也比较多,同样我也没有所有的都写出来啊,找了一部分这个有代表性的三连体的就是300啊,有多种选择。请求的资源可以包含多个位置,相应可以返回一个资源的特征和地址,用于什么用户终端。选择啊。用户终端选择啊。比如说用于选择我们客户端的一个浏览器啊。那再一个就是301永久移动啊。云移动301呢,这个呢,其实我们是看到过的,那就是呃,我们在进行这个rewrite规则编写的时候,有一个R。等于三。301我们称之为叫永久重定项啊。这个呢,会自动更新浏览器当中的URL地址啊。今后任何的请求都使用这个新的更新过的URL地址来进行。一个什么。
09:03
访问OK。302呢,与301相似,但是它只是临时的进行一个替换,下次有新的请求,则会换回原有的那个啊。域名地址。303查看其他的地址与301相似,使用get和post进行查看。这个和上面两个是不一样的。那304未修改。所请求的资源未做修改,服务器返回此装代码时不会返回任何资源。客户端通常会访问对应的缓存来得到一个对应的资源。也就是说,如果看到是304,意味着我们的用户请求到的只是缓存信息,而不是真正服务器上的资源。305USE proxy使用代理。所有请求的资源必须通过代理服务器能请求得到。强制要求我们的用户访问这个,或者说我们的用户被迫使用了代理服务进行访问。
10:00
在一个307临时冲向与302。比较类似。好了,简单总结一下啊。前三类状态码都是描述性状态码,都是叙述我们这个用户的请求是什么类型的,处理到了哪个步骤等等等等信息,但是他们都不是报错信息。啊,都不是报错信息。前后边的四零几和五零几的报错,呃,和五零几的状态码都是对应的一个报错的信息,也就是说我们需要去解决对应问题的一些信息,OK,那我们来看一下常见的。四级的。这种代码有哪一些?第一个400。指的是客户端的语法成分,你也可以,比如说你可以这样理解,就是我们在浏览器上输入这种。嗯,请求URL地址的时候,这种请求URL地址写的有问题。或者请求的内容有问题,导致我们服务器无法理解你到底说的啥,比如说客户官员给服务器说话,想要什么资源,但是服务器说你说啥,我听不懂。
11:05
就会4401指的是请求,要求用户的身份进行认证,比如说。有些时候呢,我们需要进行对客户端身份的一个认证,那这个时候呢,就会出现401,比如说我提示客户端你需要认证信息才能进行一个对应资源的访问。那再来说这个402 402只能是保留,保留对应的用户请求,然后呢,将来进行使用这个用户请求,OK,比如说你可以理解为是暂停对应的信息了。那403呢,这个是特别特别特别特别特别特别常见的啊,我用了很多特别啊403特别常见,那403的问题呢,主要是服务器理解了客户端信有就说服务器知道你在说啥,但是服务器就是不给你解析。啊,服务器明白你在说的是啥,但是服务器就不给你解析,OK。这个是比较常见的一种啊,那404。
12:00
404呢,这种也是特别常见的,404很好这个理解,那就是一般情况下,只有在服务器在接收用户请求之后,找不到客户端请求的资源时,才会出现404。比如说。我网站上明明没有这个苍老师的照片,你非要通过我的网站找苍老师照片,那对不起,我肯定找不着,那这个时候我就会报404。这种就是我们对应的403和404的报错,那405。405呢,一般指的是我们的客户端请求中的方法被禁用,比如说客户端你使用的请求方法,比如说什么get啊,Po呀之类的请求方法被禁用了,那这个时候我们会告诉你,你这种请求方式是不允许的啊,Not不被允许的。406。服务器无法根据客户端请求内容进行什么内容特性的定义啊,内容特性的定义,那这个时候服务器相当于没法处理啊,相当于没法处理以后告诉客户端,你这个请求不合理,我没法给你处理。
13:02
那再一个就是407啊请求要求代理身份认证与401相似,比如说进行身份认证的一种,只不过这种请求呢,一般要使用代理服务器进行授权和身份认证,而不是直接使用我们的外部服务器。这是四零级相关的一些。那再一个就是无。五零几相关代码了。那五零级相关代码一般指的是服务器上的错误啊,OK,嗯,生产环境中是这样的啊。我们一般尽量的不要让服务器出现五零级错误,原因很简单,一旦服务器出现五零错误,代表着服务器出现了故障,那我们这个时候需要去一个是维护维修,第二个是对用户的这种体验也不也是不太好的。下五零级的错误,我们场景有哪些呢?500服务器内部错误,无完成请求501啊,服务器不支持请求的功能,无法完成请求502啊错误的网关,比如说当我们的用户请求来了之后,服务器也理解了用户的请求,但是服务器呢,尝试向另外一个服务器发起请求进行。
14:08
解析发现连接不上,比如说还是用刚才的PPT的话,我们可以这样来看。比如说,嗯。一个用户请求到了N服务器,N想把这个用户的请求转发给阿帕奇,让阿帕奇处理,但是发现连不上阿帕奇了,其他也连不上了,这个时候我们的网关是没法对你这个动态页面解析的,那相当于这个请求就停在了网关上,那这个时候网关就会报错,告诉你对不起,这个请求处理不了,因为啥网关。对吧,连接不到真正的服务器,你可以为就是网关不可用。很OK,再一个就是503。由于超载或者系统维护,导致我们服务器暂时无法处理客户的引流,诶这个呀,说实话很常见啊,也不能很常见,就是如果服务器受到了攻击会很常见,比如说。
15:02
我们的服务器的性能到了极限。啊,就是我们的用户请求特别大,把服务器所有资源都占光了,没有任何资源可以给新的用户请求处理了,那这个时候新的用户请求就会报503。什么时候会8503啊。服务器受到攻击了DDOS攻击了,服务器资源都被占光了,OK,再有新的用户进来,就是503了。504 504呢指的是充当网关或代理服务器,但是未及时的从远端服务器获取数据,这个呢,其实和我们的这个什么502这个很相似啊,OK,很相似。在505服务器不支持当前请求的协议版本无反程处理。也就是说。你所使用的HTP的版本和我所要求使用的HP版本不相匹配,那这个对应的请求我就不能给你处理完成,那我就会报错。这就是我们所有的关于呃。
16:02
想知道每个组件?像人家题目中问的是写出几个常见的,那你就写常见的,所以说这个地方我给大家总结了一些相对比较常见的啊,主要是四和五。四百四零四四零五五百五零三五零四五零五。这几个都是我们在生产环境中相对比较常见的一些报错的提示代码,报错提示代码,那我们呢,可以。在这个回答别人的这种类似面试题的时候,你就可以写四百四零四,405,五百五零三,504 505这些。那一定要。提前把这些。错误代码的原因来记住它啊,记住它。好了,那我们的这个状态码的这个面试题呢,我们就录到这了,那到此呢,我们这个网络服务阶段的面试题呢,就告一段落了啊就告一段落了,然后我们下一个阶段的面试题是我们数据库相关的面试题,然后数据库相关的面试题,那我们从下节课开始就开始录入数据库的相关命题了,那我们下节课再见。
我来说两句