GET 與 POST 的理解

 

1 HTTP請求
      超文本傳輸協議(HTTP)的設計目的是保證客戶機與服務器之間的通訊。
      HTTP 的工做方式是客戶機與服務器之間的請求-應答協議。
      好比,客戶端(瀏覽器)向服務器提交 HTTP 請求;服務器向客戶端返回響應。響應包含關於請求的狀態信息以及可能被請求的內容。
      兩種比較經常使用的HTTP請求方式:GET 和 POST。瀏覽器

2 GET方法 vs POST方法緩存

      2.1 運行機制
            Get 方法經過 URL 請求來傳遞用戶的數據,Get將表單中數據的按照variable=value的形式,添加到action所指向的URL後面,而且二者使用「?」鏈接,而各個變量之間使用「&」鏈接,如[url]http://www.baidu.com?a=1&b=xyz[/url],數據都會直接顯示在 url 上;
            Post 方法經過 HTTP post 機制,將表單中的數據放在form的數據體中,按照變量和值相對應的方式,傳遞到action所指向URL。安全

      2.2 取值方法
            GET $_GET[""]
            post $_POST[""]服務器

      2.3 對數據長度的限制
            Get 方式傳輸的數據量很是小,通常限制在 2 KB 左右,這主要是由於受URL長度限制,可是執行效率卻比 Post 方法好;
            Post 方式傳遞的數據量相對較大,它是等待服務器來讀取數據,不過也有字節限制,這是爲了不對服務器用大量數據進行惡意攻擊。post

      2.4 安全性
            Get 請求能夠被緩存,被保留在瀏覽器歷史記錄中,還能夠被收藏爲書籤,會帶來安全問題,好比一個登錄頁面,經過 Get 方式提交數據時,用戶名和密碼將出如今 URL 上,若是頁面能夠被緩存或者其餘人能夠訪問客戶這臺機器,就能夠從歷史記錄得到該用戶的賬號和密碼。
            因此表單提交建議使用 Post 方法,尤爲是在處理敏感數據時。url

      2.5 對數據類型的限制
            Get限制Form表單的數據集的值必須爲ASCII字符;
            Post支持整個ISO10646字符集。設計

      2.6 後退按鈕/刷新
            在後退或者刷新的時候,POST請求的數據可能會被從新提交(瀏覽器應該告知用戶數據會被從新提交,或採起措施避免從新提交數據)orm

相關文章
相關標籤/搜索