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(返回數據)