这几天小组值班的时候老是听学长提起面试,也顺便搜了下一些传说中的面经....
发现差距仍是挺大的,甚至这个状态码的问题也没好好总结过
为了证实本身作过程序员.............就从新记录下html
绝大部分为《图解HTTP》笔记python
HTTP 状态码负责表示客户端 HTTP 请求的返回结果、标记服务器端 的处理是否正常、通知出现的错误等工做
状态码由3位数字组成,第一位是缘由分类表明,剩下的两位没有特殊分类
类型 | 类别 | 缘由 |
---|---|---|
1XX | Informational(信息性状态码) | 接受的请求正在处理 |
2XX | Success(成功状态码) | 请求正常处理完毕 |
3XX | Redirection(重定向状态码) | 须要进行附加操做以完成请求 |
4XX | Client Error(客户端错误状态码) | 服务器没法处理请求 |
5XX | 5XX Server Error(服务器错误状态码) | 服务器处理请求错误 |
常见的大概一共有14种程序员
这个状态码应该是最多见也是咱们最想见到的,表明客户端发送的请求被服务端正常处理
同时在响应报文内,随状态码返回的信息会随着HTTP方法不一样而不一样面试
常见的请求方法是GET和POST,但不只仅这两种,一般有如下8种方法:OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE和CONNECT
这个状态码表明的意思就是客户端发送的请求被服务端正常处理了
可是服务端并无返回任何实体内容浏览器
通常在只须要从客户端往服务器发送信息,而对客户端不须要发送新
信息内容的状况下使用
该状态码表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求
对于206的定义是请求必须包含Range头来标示咱们想要的范围缓存
所以这就是说咱们能够经过Range和206 Partial Content来分块获取一个大文件
永久性重定向
该状态码表示请求的url资源被分配了新的url
若是已经把资源对应的URI保存为书签了
可是此时新的URL在Location头中给出,浏览器应该自动地保存和访问新的URL服务器
临时性重定向
从总的描述中咱们能够看出这个状态码和301类似
只是该状态码属于临时性分配新的url
在本次的访问中应使用新得url,同时不用更新书签url
这个状态码也表明访问存在新的url,但应注意的是这个
状态码明确表示客户端应该采用GET方法获取资源spa
好比当使用POST方法访问CGI程序其执行后的处理结果是但愿客户端能以GET方法重定向
到另外一个URI上去时,返回303状态码。虽然302 Found状态码也能够实现相同的功能,但
这里使用303状态码是最理想的
该状态码表示客户端发送附带条件的请求时,304状态码返回时,不包含任何响应的主体部分
服务器告诉客户,原来缓冲的文档还能够继续使用
304虽然被划分在3XX类别中,可是和重定向没有关系orm
好比在包含If-Modified的网页中,服务器会自动完成 Last Modified 和 If Modified Since 的比较,完成缓存或者更新
而动态页面则是在消息头中定义Last Modified,最后造成这样的结果
第一次访问 200
鼠标点击二次访问 (Cache)
按F5刷新 304
按Ctrl+F5强制刷新 200
附带条件的请求是指采用 GET 方法的请求报文中包含 If-Match,If-ModifiedSince,If-None-Match,If-Range,If-Unmodified-Since 中任一首部
临时重定向
这个状态码和302含义同样,不过上面没有说到
当 30一、30二、303响应状态码返回时,几乎全部的浏览器都会把POST改为 GET,并删除请求报文内的主体,以后请求会自动再次发送
30一、302标准是禁止将POST方法改变成GET方法的,但实际使用时你们都仍是会那么作
而这个307比较听话,会遵守浏览器标准,不会从POST变成GET
该状态码表示请求报文中存在语法错误。当错误发生时,需修改请求的内容后再次发送请求
该状态码表示发送的请求须要有经过HTTP认证(BASIC认证、DIGEST 认证)的认证信息。另外若以前已进行过1次请求,则表示用户认证失败
这个状态码也是比较常见的,表示尝试请求访问的资源被禁止访问
未得到文件系统的访问受权,访问权限出现某些问题(从未受权的发送源IP 地址试图访问)等列举的状况均可能是发生403的缘由
又一个常见的状态码,表示服务器没有此资源
也多是服务器无情的拒绝了你,但不想告诉你为何
这个在python的开发中我主要见到的主要是路由未定义而致使的404
该状态码代表服务器端在执行请求时发生了错误。也有多是Web应用存在的bug或某些临时的故障
这个正如官方解释,在开发中将常遇到的问题就是代码错误,至少我碰到的是这样
这个状态码表明的是服务器超过负载或者停机维护,没法处理请求
很多返回的状态码响应都是错误的,可是用户可能察觉不到这点。好比 Web 应用程序内部发生错误,状态码依然返回200 OK,这种状况也常常遇到