1、Content-Type属性
表明 请求正文或者响应正文包含了什么样的内容,属于一个描述性的属性。比如我们请求/响应正文里放了 网页信息,或者说放了普通文本,那么请求头/响应头里应该这么写:
Content-Type:text/html //表明正文中的内容是一个网页
Content-Type:text/plain //表明正文中的内容是普通文本
其他的可以根据下面的对照表来选择Content-Type对应的属性值,扩展名表示你要在请求/响应正文里放置的内容类型。
2、Content-Length属性
也是一个描述性的属性,表明请求正文 或者 响应正文中的内容所占字节大小。可以用于解包。
Content-Length: 136 //一般请求/响应有正文的时候,才会使用
(1) Content-Length属性的作用
假设浏览器给服务端一次性发送了多条请求,由于服务端是按照字节数读取的。就像下面这样,每次读取1024个字节数。
读取到一个请求以后,我们可能会读取到其他请求的一部分。请求头和请求正文是以空行分割的,我们只要读取到空行,说明我们已经读取完了请求头;现在只要知道请求正文的大小,我们就可以读取剩下的请求正文,而且不会读取到下一个请求的一部分。
(2) 获取请求/响应正文大小的方式
如果是我们自己定义的结构体、对象、字符串,我们可以通过sizeof来获取。
但是如果是某个路径下的文件,我们可以使用stat函数来获取。
stat函数能够获取到某一指定路径下的文件大小。
第一个参数:输入型参数,文件路径。即你要计算大小的文件所在路径
第二个参数:输出型参数,以结构体的形式返回该文件的相关信息,其中包含了文件大小。
返回值:成功返回0,失败返回-1