请求数据分为三部分

  ¤  请求行:请求数据的第一行,分为3部分,每部分由空格分开。例:GET / HTTP/1.1

    ♦  GET部分表示请求方式。请求方式有七种:GET  POST

      •  GET没有请求体,请求参数在请求行中,参数大小有限制

      •  POST请求参数在请求体中,没有大小限制

    ♦  /部分表示请求资源路径。

    ♦  HTTP/1.1部分表示协议版本

  ¤  请求头:从第二行开始,格式为key:value形式。见请求头如下:

    ♦  Host  表示请求的主机

    ♦  User-Agent  浏览器版本。例:Chrome:Mozilla/5.0 Chrome/79  IE:Mozilla/5.0 (Windows NT...) like Gecko

    ♦  Accept  表示浏览器能接收的资源类型。例:text/*  Image/*  注:*/*表示所有

    ♦  Accept-Language  表示浏览器偏好语言,服务器可以据此返回不同语言的网页

    ♦  Accept-Encoding  表示请浏览器可以支持的压缩格式。例:gzip  deflate等

  ¤  请求体:POST类型请求的最后一部分,存放请求参数。请求头和请求体之间有一空行隔开

响应数据分为三部分

  ¤  响应行:响应数据的第一行,分为3部分,每部分之间有空格分开。例:HTTP/1.1 200 OK

    ♦  HTTP/1.1表示协议版本

    ♦  200表示响应状态码。

 

    ♦  OK表示状态码描述。

  ¤  响应头:从第二行开始,格式为key:value形式。常见响应头如下:

    ♦  Content-Type  表示响应内容的类型。例如:text/html  image/jpeg

    ♦  Content-Length  表示响应内容的长度(字节数)。

    ♦  Content-Encoding  表示该响应压缩算法。例如:gzip

    ♦  Cache-Control  指示客户端应如何缓存。例如:max-age=300表示最多缓存300毫秒

  ¤  响应体:最后一部分,存放响应数据。

响应状态码分类:

  ¤  1XX  响应中-临时状态码,表示请求已接受,告诉客户端应该继续请求或者已经完成则忽略它。

  ¤  2XX  成功-表示请求已经被成功接收,处理已完成。

  ¤  3XX  重定向-重定向到其它地方,它让客户端再发起一个请求以完成整个处理。

  ¤  4XX  客户端错误-处理发生错误,责任在客户端。例如客户端请求一个不存在的资源,客户端未被授权,禁止访问等。

  ¤  5XX 服务端错误-处理发生错误,责任在服务端。例如服务端抛出异常,路由出错,HTTP版本不支持等。

常见响应码:

  ¤  200  OK  客户端请求成功,服务端处理成功。

  ¤  302  Found  指示所请求的资源已移动到由Location响应头给定的URL,浏览器会自动重新访问到这个页面

  ¤  304  Not Modified  告诉客户端请求的资源至上次访问后,服务端并未更改,直接使用本地缓存,隐式重定向。

  ¤  400  Bad Request  客户端请求有语法错误,不能被服务端所理解。

  ¤  403  Forbidden  服务端收到请求,但是拒绝提供服服务。例如:没有权限访问相关资源。

  ¤  404  Not Found  请求资源不存在,一般是URL输入有误,或者网站资源被删除了。

  ¤  405  Method Not Allowed  请求方式有误。例如应该用GET请求的,使用了POST。

  ¤  428  Precondition Required  服务端要求有条件的请求,告诉客户端要访问的资源必须使用特定的请求头。

  ¤  429  Too Many Requests  太多请求,可以限制客户端请求某个资源的数量,配合Retry-After(多长时间后可以请求)响应头一起使用。

  ¤  431  Request Header Fields Too Large  请求头太大,服务端不愿意处理请求,可以在减少请求头后大小后重新请求。

  ¤  500  Internal Server Error  服务器发生不可预期的错误。

  ¤  503  Service Unavailable  服务器还未准备好处理请求。

  ¤  511  Network Authentication Required  客户端需要身份验证才能获得网络访问权限。