常见的HTTP状态码详细解析
http状态码分为五类 :
1XX 信息 服务器收到请求,需要请求者继续操作
2XX 成功 请求被成功接手并返回给请求者
3XX 重定向 需要进一步操作才能完成请求
4XX 客户端错误 请求包含语法错误,或无法完成请求
5XX 服务端错误 服务端在处理请求过程发生了错误
200是请求成功,并向客户端成功返回
301、302、307的区别?
301是永久移动 请求的资源被永久的移动到新的URL上,返回的信息包含了新URL,浏览器保存新URL。
302是临时移动 请求的资源临时的移动到新URL上,客户端仍使用旧URL,浏览器也会保存旧到URL。(可能发生网址劫持)
307是临时重定向 与302类似,但若为post请求,客户端要向首部location里的URI重新发起POST请求。
303是查看其他地址 若为post请求,明确表示要用GET请求首部location里的URI
304是请求资源未被修改 客户端发送附带条件的请求时,服务端允许请求访问资源,但因请求不满足条件,重定向直接使用客户端缓存的资源
200、304的区别?
200 (from cache)是强制缓存,直接从缓存里取资源,与服务器无交流。
304(not modified)是协商缓存,请求资源中附带条件,服务器校验条件是否满足,不满足再拿客户端缓存的资源。
强制缓存判断cache-control是否过期,协商缓存先判断Etag在判断Last-Modified,最终决定是否拿缓存中的。
400是请求报文中出现错误
401是请求需要认证
403是请求被服务端拒绝
404是请求资源在服务端找不到
500是服务端出现错误
503是服务器处于超负载或者停机维护状态
504是连接超时