1. 程式人生 > >http的get與post

http的get與post

嚴重 存在 現在 發送 所有 隱私 local 級別 歷史記錄

1.http請求

  http有兩種報文,請求報文 (發送請求,可能包含數據)和響應報文(服務器響應請求獲取數據)。一個http請求報文由請求行,請求頭部,空行和請求正文(數據)四個部分組成。

  HTTP請求:              get:                        post:

  <request line> //請求行          GET xx/index.html?name=1&age=1 HTTP/1.1     POST xx/index/html HTTP/1.1

  <headers> //請求報頭         Accept: */*                     Accept: */* 

                      Accept-Language: zh-cn               Accept-Language: zh-cn

                      host: localhost                    host: localhost

                      ‘‘‘‘‘                        ‘‘‘‘‘‘‘

  <blank line> //空行          

  [<request body>] //請求正文(可選)                              name=1&age=1

2.區別

  根據HTTP規範,get方法用於信息獲取,而且是安全和冪等的,也就是說get請求不會修改信息,僅僅獲取信息資源,且每次獲取的資源是一致的。post方法表示可能修改服務器上的資源的請求。get和post只是傳遞數據的方式,get方法也可以把數據傳遞到服務器,他們的本質都是請求然後接收結果,並不是一個取一個發。

  從http請求來看,get方法的數據直接體現在URL上,而post方法則保存在請求正文中。所以,由於瀏覽器服務器的原因,URL的長度是有長度限制的,所以get方法傳輸的數據也是有大小的限制,post方法不是通過URL傳值,理論上數據不受限制。使用get方法的時候。參數會在地址欄顯示,瀏覽器歷史記錄也會記錄下來,對於敏感數據,隱私性方面post方法更合適,當然這些是瀏覽器規定的。他們的安全級別都是一樣的,如果沒有加密,任何一個監聽器都可以監聽到所有的數據。

  在開發中應該使用GET來獲取查看信息,不能改變服務器信息,POST用來改變服務器信息,這是HTTP協議的要求,眾多的瀏覽器都會遵照的原則,開發過程中同樣應該嚴格遵守,以免發生一些嚴重的後果。

http的get與post