1. 程式人生 > >HTTP GET 請求在請求體中帶引數的問題

HTTP GET 請求在請求體中帶引數的問題

浪費了“黃金五年”的Java程式設計師,還有救嗎? >>>   

最近看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}'


,返回的結果一切正常,抓包結果如圖所示:

這裡寫圖片描述

可以看到GET請求的URL是/_search?pretty,URL中並沒有想像中的引數,引數是在圖片最下方所示的部分中。由此觀之,HTTP GET請求實際上也是能在請求體中帶引數的,只不過有些伺服器(尤其是快取代理伺服器)可能不支援這種方式而已。而ES的設計者認為GET比較符合檢索資訊的這個動作,比POST要好,所以使用了GET請求,不過為了與習慣保持一致,而且為了相容所有的伺服器,所以把GET換成POST也