HTTP GET 请求在请求体中带参数的问题

最近看Elasticsearch: The Definitive Guide这本书的时候,有些时候发现使用curl的时候,在GET请求中加了-d参数,由于不多见到GET请求在请求体中带参数,通常状况下都是在URL里面的,因此好奇特意用wireshark抓了一下包,使用的命令是curl -XGET "http://120.25.162.238:9200/_search?pretty" -d '{"from":5,"size":5}'
,返回的结果一切正常,抓包结果如图所示:html

这里写图片描述

能够看到GET请求的URL是/_search?pretty,URL中并无想像中的参数,参数是在图片最下方所示的部分中。由此观之,HTTP GET请求实际上也是能在请求体中带参数的,只不过有些服务器(尤为是缓存代理服务器)可能不支持这种方式而已。而ES的设计者认为GET比较符合检索信息的这个动做,比POST要好,因此使用了GET请求,不过为了与习惯保持一致,并且为了兼容全部的服务器,因此把GET换成POST也是能够的。缓存

相关文章
相关标签/搜索