HTTP请求是指从客户端到服务器端的请求消息。HTTP请求主要由三部分构成,请求行、请求头(headers)、body(请求数据)。
上图是笔者用Charles抓包工具抓的一个浏览器请求,当然用谷歌浏览器F12也是可以的。通过抓包工具我们可以看到当我们向服务器请求时,发送了很多数据给服务器,但主要还是三部分:状态行、请求头(headers)、body(数据)。
当我们向服务器发送一个HTTP请求时,服务器一般都会给出响应。HTTP响应主要由三部分构成,响应行、响应头(headers)、响应正文。
HTTP响应我们提到状态码这个概念,状态码一般以1/2/3/4/5 开头,如下所示:
1xx: 信息响应类,表示接收到请求并且继续处理 2xx: 处理成功响应类,表示动作被成功接收、理解和接受 3xx: 重定向响应类,为了完成指定的动作,必须接受进一步处理 4xx: 客户端错误,客户请求包含语法错误或者是不能正确执行 5xx: 服务端错误,服务器不能正确执行一个正确的请求
常见状态码如下所示:1xx:信息
状态码描述100 Continue服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求。101 Switching Protocols服务器转换协议:服务器将遵从客户的请求转换到另外一种协议。2xx:信息
状态码描述200 OK请求成功(其后是对GET和POST请求的应答文档。)201 Created请求被创建完成,同时新的资源被创建。202 Accepted供处理的请求已被接受,但是处理未完成。3xx:信息
状态码描述300 Multiple Choices多重选择。链接列表。用户可以选择某链接到达目的地。最多允许五个地址。301 Moved Permanently所请求的页面已经转移至新的url。302 Found所请求的页面已经临时转移至新的url。303 See Other所请求的页面可在别的url下被找到。304 Not Modified未按预期修改文档。客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。4xx:信息
状态码描述400 Bad Request服务器未能理解请求。401 Unauthorized被请求的页面需要用户名和密码。402 Payment Required此代码尚无法使用。403 Forbidden对被请求页面的访问被禁止。404 Not Found服务器无法找到被请求的页面。5xx:信息
状态码描述500 Internal Server Error请求未完成。服务器遇到不可预知的情况。