最近看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也是能夠的。緩存