HTTP是一個基于TCP/IP來傳遞數據的通信協議。
1.GET和POST請求的區別?
a: GET/POST本質上都是TCP鏈接,GET傳body和POST拼參數,理論上都是可行的。
b:?實際上HTTP協議對URL長度是沒有限制的;限制URL長度大多數是瀏覽器或者服務器的配置參數。
請求安全定義
一個 HTTP方法是安全的,是指這是個不會修改服務器的數據的方法,這是一個對服務器只讀操作的方法。比如GET,HEAD?和?OPTIONS。
GET:冪等、可緩存。
POST:不冪等、不可緩存
冪等: 指的是同樣的請求被執行一次與連續執行多次的效果是一樣的,服務器的狀態也是一樣的。按照RFC,PUT,DELETE和GET方法都是冪等的。就算方法具有只讀的語義,服務器也能更改它自己的數據,比如:記錄這次請求的日志或者數據分析。安不安全的定義是這個方法需不需要服務器修改數據。客戶端不需要服務端修改數據,也就不會給服務端造成不必要的負擔。瀏覽器調用安全的方法不用考慮會給服務端造成什么危害,這樣,服務端就能允許客戶端預加載資源。
c:?
GET請求,瀏覽器會把httpheader和data一并發送出去,服務器響應200(返回數據)。
POST請求,瀏覽器先發送header,服務器響應100continue,瀏覽器再發送data,服務器響應200 OK(返回數據)。
備注:POST需要兩步,時間上消耗的要多一點。
在網絡環境好的情況下,發一次包的時間和發兩次包的時間差別基本可以無視。而在網絡環境差的情況下,兩次包的TCP在驗證數據包完整性上,有非常大的優點。
并不是所有瀏覽器都會在POST中發送兩次包,Firefox就只發送一次。
d:請求參數
3、常見的響應頭