http状态码表示服务器对请求的响应状态,主要分几类:
1**:临时响应,只包含状态行和某些可选的响应头信息,并以空行结束
2**:请求成功
3**:重定向
4**:客户端错误
5**:服务端错误
100(continue):客户端应当继续发送请求,这个临时响应用来通知客户端它的部分请求已被接收
200(OK):请求成功,响应头将返回
202(Accepted):服务器已接收,但尚未处理
204(No-Content):服务器已成功处理,但无需返回内容
205(Reset-Content),服务器成功处理了请求,且没有返回任何内容。但是与204响应不同,返回此状态码的响应要求请求者重置文档视图。该响应主要是被用于接受用户输入后,立即重置表单,以便用户能够轻松地开始另一次输入。
206(Partial-Content),服务器已经成功处理了部分 GET 请求。
301(Moved-Permanently),永久性转移
302(Moved-Temporarily),暂时性转移
304(Not-Modified),浏览器端缓存的资源依然有效
400(Bad-Reques),请求有误,当前请求无法被服务器理解。
401(Unauthorized),当前请求需要用户验证。
403(Forbidden),服务器已经理解请求,但是拒绝执行它。
404(Not-Found),请求的资源没有被找到
500(Interval Server Error),服务器内部错误
502(Bad GateWay),网关出错
503(Service Unavailable),由于临时的服务器维护或者过载,服务器当前无法处理请求。
504(Gateway Timeout),作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应。
304的含义:
当客户端发送一个条件验证请求,服务器可能返回HTTP/304响应,这表明客户端先前所请求资源的缓存依旧有效,即上次缓存到现在并没有被修改,浏览器将直接返回上次的资源,条件请求可确保客户端资源时最新的同时又能避免给服务器带来性能问题。
条件请求:
发送条件:当客户端缓存了资源但不知道这是否是最新的资源时,会发送条件请求
内容: headers inspectors中会包含If-Modified-since(自上次请求开始是否修改,内容为响应头Last-Modified的日期值)及If-None-Match,内容为上次返回的ETag响应头的值。
服务器会读取到这两个请求头中的值,判断出客户端缓存的资源是否是最新的,如果是的话,服务器就会返回HTTP/304 Not Modified响应,但没有响应体.客户端收到304响应后,就会从缓存中读取对应的资源.
另一种情况是,如果服务器认为客户端缓存的资源已经过期了,那么服务器就会返回HTTP/200 OK响应,响应体就是该资源当前最新的内容.客户端收到200响应后,就会用新的响应体覆盖掉旧的缓存资源.
301与302的区别:
1.当用户或搜索引擎向网站服务器发出浏览请求时,301表示本网页永久转移到另一个网址,而302表示搜索引擎会抓取新的内容而保留旧的网址
2.SEO优化,302好于301。