随笔目录:

  • request请求报文格式
  • response响应报文格式
  • http1.x 和 http2.0的区别

1.request请求报文格式:

request的请求报文格式由3各部分组成:请求行、请求头、请求主体(当为post请求时)。

请求行:

  1.请求的类型,常见的是get,post。如果采用RESTful风格的话,get(查询资源)、post(增加资源)、put(更新资源)、delete(删除资源)。

  2.请求资源的URI,为相对地址。

  3.HTTP协议的版本号(下文会讲到具体的http的版本的协议)。

请求头:完整的GET请求如下图所示(可以用谷歌浏览器的调试功能的network可以看到对应的请求介绍。)

get请求No instances available for GET请求头的报文信息含义_客户端

首先解释下GET请求的请求头各参数的意思:

  Host:主机名,把它和请求行的URI进行拼接的话,会得到请求资源的完整的路径。

  Accept:表示客户端可以接受数据的类型。

  Accept-Language:表示客户端可以接受语言的格式。

  Accept-Encoding:表示客户端接收的数据压缩格式。

  Cache-Control:可以设置浏览器端的是否缓存数据,或者设置缓存数据的过期时间。

注意:get请求是没有请求主体的,它的请求参数都是附在请求的url后面。

post请求的如下图:

get请求No instances available for GET请求头的报文信息含义_客户端_02

在post请求中,是有请求主体的。以key-value形式发送给后台(在url后面是看不到的)。

2.response响应报文格式:

 response响应报文也是三部分组成:响应行、响应头、响应主体。

响应行:

  1.响应码。

  2.响应码的描述信息。

  3.http协议的版本。

下面介绍常见的响应码:(注意以下采用RESTful介绍)

  • 200:响应成功。比如请求类型为get,请求成功时(资源成功的查到),返回200。
  • 201:请求成功,而且有一个新的资源已经依据请求的需要而建立。
  • 204:
  • 301:
  • 302:
  • 400:
  • 500:
  • 501:
  • 502:

响应头:如下图:

  

get请求No instances available for GET请求头的报文信息含义_post请求_03

响应头部分参数解析:

  Content-Type:内容的类型。

  Content-Length:内容的长度。

响应体 : 服务器发送给客户端的参数。

3.http1.x 和 http2.0的区别

首先介绍http1.0的弊端:

  http1.0每建立一次TCP连接,只能提供一次request请求和response请求,一次response请求结束后,自动断开TCP连接。之后如果想要再发送http请求,必须重新建立连接。