HTTP基础原理与koa-bodyparser原理解析
一、前置知识 在理解koa-bodyparser原理之前,首先需要了解部分HTTP相关的知识。 1、报文主体 HTTP报文主要分为请求报文和响应报文,koa-bodyparser主要针对请求报文的处理。 请求报文主要由以下三个部分组成: 报文头部 空行 报文主体 而koa-bodyparser中的body指的就是请求报文中的报文主体部分。 2、服务器端获取报文主体流程 HTTP底层采用TCP提供可靠的字节流服务,简单而言就是报文主体部分会被转化为二进制数据在网络中传输,所以服务器端首先需要拿到二进制流数据。 谈到网络传输,当然会涉及到传输速度的优化,而其中一种优化方式就是对内容进行压缩编码,常用的压缩编码方式有: gzip compress deflate identity(不执行压缩或不会变化的默认编码格式) 服务器端会根据报文头部信息中的Content-Encoding确认采用何种解压编码。 接下来就需要将二进制数据转换为相应的字符,而字符也有不同的字符编码方式,例如对于中文字符处理差异巨大的UTF-8和GBK,UTF-8编码汉字通常需要三个字节,而GBK只需要两个字节。所以还需要在请求报文的头部信息中设置Content-Type使用的字符编码信息(默认情况下采用的是UTF-8),这样服务器端就可以利用相应的字符规则进行解码,得到正确的字符串。