【Android】Http的Header和Body
2020-07-22 本文已影响0人
小八八八八八八
Header
作用:HTTP消息的元数据(metadata)(对数据进行修饰)
例:故事中的故事,游戏中的小游戏,就是元数据
Host:服务器主机地址
Host:api.github.com(域名,是为了方便好记;实际会将域名通过DNS查询到IP,再进行访问)
Host的作用是为了在目标主机寻址用的,因为一个主机上可能会有多个子主机,进而确定指定的子主机。
Content-Type/Content-Length:Body的类型和长度
Content-Length:内容的长度
例:
Content-Length: 7
name=zs
因为Body不一定全是字符串,也有可能是二进制数据。所以无法根据内容来知道是否传输结束。
Content-Type:内容的类型
text/html:html文本,用于浏览器页面响应
例:
<!DOCTYPE html>
<html>
<head>
......
application/x-www-form-urlencoded: 普通表单,encoded URL格式 (纯文字表单)
例:
Content-Length: 7
Content-Type: application/x-www-form-urlencoded
name=zs
multipart/form-data: 多部分形式,一般用于传输包含二进制内容的多项内容
例:
Content-Type: multipart/form-data;boundary=----Web.......
Content-Length: 3000
(第一部分-字符串)
------Web.......
Content-Disposition: form-data;name="name"
zx
(第二部分-文件)
------Web.......
Content-Disposition:form-data;name="avatar";filename="avatar.jpg"
Content-Type:image/jpeg
QWEIRERJAKS
------Web.......--
因为在文件中不能用普通的字符分割,所以需要用自定义boundary来分割,而普通表单则因为太占空间所以不用
application/json: json形式,用于Web Api的响应或POST/PUT请求
例:
Content-Type: application/json;charset=utf-8
Content-Length: 13
{"name":"zs"}
image/jpeg / application/zip...: 单文件,用于Web Api的响应或POST/PUT请求
例:
Content-Type: image/jpeg
Content-Length: 1400
JEBJABSEH...
Location: 重定向的目标URL
User-Agent: 用户代理(移动端通常用不上)
Accept-Ranges: 制定Body的内容范围
例:
Range: bytes=0-3000(0到总长度的一半)
Accept: 客户端能接受的数据类型。如text/html
Accept-Charset: 客户端接收的字符集。如utf-8
Cache: 缓存
问:
Cache和Buffer的区别
Cache是缓存
Buffer是缓冲