前言:HTTP 指的是超文本传输协议(HyperText Transfer Protocol)。首先,它是一个 协议 。「协议」是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规则。也就是大家事先约定好的,统一执行的标准。
1.那么一次HTTP请求的过程是什么样子的呢?如下图所示
补充:HTTP 无状态的特性,使其协议更加的简单,也带来了一定的缺陷,就是服务器无法识别出来你是谁,无法识别你的身份,HTTP 在后来加入了 Cookie 机制,较好的解决了这一问题,我们可以向Cookie中添加相关身份信息,并且携带.
2.报文
补充:在早期使用HTTP/1.0协议,此协议是一种无状态的,每次请求都独立的协议,后来为了方便发展长连接,发展成了HTTP/1.1协议版本,这也是HTTP/1.0 过度到 HTTP/1.1版本中比较明显的一个特征,新增了coneection头,可以选择设置close属性,让其关闭长连接属性。
1.请求头如下图所示
补充:connection头表示长连接:keep-alive属性,是HTTP/1.1协议重要属性部分,其他的属性也是十分重要的
2.响应头如下
3.常见状态码分类
分类 | 描述 |
---|---|
1xx | 信息,服务器收到请求,需要请求者继续执行操作 |
2xx | 成功,操作被成功接收并处理 |
3xx | 重定向,需要进一步的操作以完成请求 |
4xx | 客户端错误,请求包含语法错误或无法完成请求 |
5xx | 服务器错误,服务器在处理请求的过程中发生了错误 |
4.状态码常见详解
状态码 | 描述 | 返回值 |
---|---|---|
200 | 请求成功 | OK |
201 | 已创建,成功请求并创建了资源 | Created |
202 | 已接受。已经接受请求,但未处理完成 | Accepted |
205 | 重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域 | Reset Content |
302 | 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI | Found |
303 | 查看其它地址。与301类似。使用GET和POST请求查看 | See Other |
304 | 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源 | Not Modified |
305 | 使用代理。所请求的资源必须通过代理访问 | Use Proxy |
400 | 客户端请求的语法错误,服务器无法理解 | Bad Request |
401 | 请求要求用户的身份认证 | Unauthorized |
402 | 保留,将来使用 | Payment Required |
403 | 服务器理解请求客户端的请求,但是拒绝执行此请求 | Forbidden |
404 | 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置“您所请求的资源无法找到”的个性页面 | Not Found |
405 | 客户端请求中的方法被禁止 | Method Not Allowed |
500 | 服务器内部错误,无法完成请求 | Internal Server Error |
502 | 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求 | Bad Gateway |
503 | 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中 | Service Unavailable |