計算機網絡面試題 – GET 請求和POST 請求的區別

計算機網絡面試題 – GET 請求和POST 請求的區別

計算機網絡面試題 – GET 請求和POST 請求的區別


    01.從HTTP 報文層面來看,GET 請求將信息放在URL,POST 將請求信息放在請求體中。這一點使得GET 請求攜帶的數據量有限,因為URL 本身是有長度限制的,而POST 請求的數據存放在報文體中,因此對大小沒有限制。而且從形式上看,GET 請求把數據放URL 上感覺不太安全,而POST 請求把數據放在請求體裡似乎安全一些。實際上想要獲取POST 請求中的內容還是很容易的,因此兩者在安全性上其實沒有太大差異,想要實現安全的信息傳輸還是得靠HTTPS。

    02.從數據庫層面來看,GET 符合冪等性和安全性,而POST 請求不符合。這個其實和GET/POST 請求的作用有關。按照HTTP 的約定,GET 請求用於查看信息,不會改變服務器上的信息;而POST 請求用來改變服務器上的信息。正因為GET 請求只查看信息,不改變信息,對數據庫的一次或多次操作獲得的結果是一致的,認為它符合冪等性。安全性是指對數據庫操作沒有改變數據庫中的數據。

    03.從其他層面來看,GET 請求能夠被緩存,GET 請求能夠保存在瀏覽器的瀏覽記錄裡,GET 請求的URL 能夠保存為瀏覽器書籤。這些都是POST 請求所不具備的。緩存是GET 請求被廣泛應用的根本,他能夠被緩存也是因為它的冪等性和安全性,除了返回結果沒有其他多餘的動作,因此絕大部分的GET 請求都被CDN 緩存起來了,大大減少了Web 服務器的負擔。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *