Query String、Form Data、Request Payload的区别
开发中,经常会遇到
Query String
Form Data
Request Payload
之类似是而非,难以琢磨的术语。如果在双方认知不统一的情况下沟通接口,那将会是一场前后端的灾难(撸起袖子就是干)
(先埋坑,后续补图和验证)
首先简单归纳下:
Query String
,就是“查询字符串”这么解,属于URI中的一部分,用于查询,而非提交。根据RFC-3986中的约定:
The query component is indicated by the first question mark ("?") character and terminated by a number sign ("#") character or by the end of the URI
query = *( pchar / "/" / "?" )
-
Request Payload
,就是请求体中携带的(?自己解析的)数据。特别是根据ContentType
的类型判断,有application/json
,html/text
等。这里有一个显著的特征,就是:数据解析使用完全单纯依赖用户,也就是说,用户才知道,这个变量或者文本要如何使用才更有意义。 -
Form Data
,其实就是Request Payload
当中的特例,主要是指由浏览器API生成的带有表单数据的请求体数据。例如请求体中的表单数据会根据生成的Boundar