1. 程式人生 > 其它 >http訪問中GET和POST的原理解析

http訪問中GET和POST的原理解析

HTTP中的GET和POST請求解析

1.HTTP有幾種請求方法:

  在HTTP1.1中總共定義了8種方法:

  在HTTP1.0中,定義了三種請求方法:GET,POST和HEAD方法。

  在HTTP1.1中,新增了五種請求方法:OPTINOS,PUT,DELETE,TRACE和CONNECT方法。

  但我們常用的就是get和post方法

2.GET和POST兩種請求方法都有哪些區別?

  1.get的傳遞引數是放在url中的,而post的請求方式是放在request body中的,所以post比get更安全。

  2.get傳遞的引數有大小限制,在2k以下,post引數在2G以下。

  3.get請求只能進行url編碼(application/x-www-form-urlencoded),而post支援多種編碼格式

  4.get請求會被瀏覽器主動快取,而post不會,除非手動設定。

3.GET請求有request body嗎,如果有的話,可以像post一樣放在裡面嗎?

  因為GET和POST都是基於TCP/IP的底層通訊協議,所以在技術上get也是可以加入request body的,但是由於上層的HTTP協議的不同,導致伺服器不一定能夠解析到request body

4.GET請求的引數寫法是固定的嗎?

  在約定中我們是將引數寫在?後面,使用&分割,但是也可以自己定義,但是需要伺服器端進行相應的解析處理。

5.POST比GET方法更加安全,這種說法對嗎?

  不對,因為HTTP在網路上都是明文傳輸的,所以並不完全安全,如果要安全傳輸,只有加密,也就是使用HTTPS。

6.GET和POST請求傳送的資料包有什麼不同?

  GET請求時產生一個TCP資料包,POST請求時產生兩個TCP資料包。

  GET:瀏覽器會把http header和data一併傳送過去,伺服器返回200(返回資料)

  POST:瀏覽器先發送header,伺服器響應100 connect,瀏覽器再發送data,伺服器響應200 OK(返回資料)