HTTP協(xié)議(HyperText Transfer Protocol速和,超文本傳輸協(xié)議)是用于從WWW服務器傳輸超文本到本地瀏覽器的傳送協(xié)議。它可以使瀏覽器更加高效碰凶,使網(wǎng)絡傳輸減少痒留。它不僅保證計算機正確快速地傳輸超文本文檔,還確定傳輸文檔中的哪一部分,以及哪部分內(nèi)容首先顯示(如文本先于圖形)等野宜。
HTTP是一個應用層協(xié)議匈子,由請求和響應構成,是一個標準的客戶端服務器模型喷户。HTTP是一個無狀態(tài)的協(xié)議闹获。
可以使用chrome瀏覽器的開發(fā)者工具進行抓包
最直觀的區(qū)別就是GET把參數(shù)包含在URL中,POST通過request body傳遞參數(shù)河哑。
搜索一番昌罩,基本的答案是
1. GET把參數(shù)包含在URL中,POST通過request body傳遞參數(shù)灾馒。
2. GET在瀏覽器回退時是無害的茎用,而POST會再次提交請求。
3. GET請求參數(shù)會被完整保留在瀏覽器歷史記錄里,而POST中的參數(shù)不會被保留轨功。
4. GET請求在URL中傳送的參數(shù)是有長度限制的旭斥,而POST沒有。
5. GET比POST更不安全古涧,因為參數(shù)直接暴露在URL上
HTTP是基于TCP/IP的關于數(shù)據(jù)如何在萬維網(wǎng)中如何通信的協(xié)議垂券。可以在GET加上request body羡滑,給POST帶上url參數(shù)菇爪,沒有技術問題,可以自行測試一番哈柒昏。
如圖Postman允許在post增加參數(shù)
HTTP只是個行為準則凳宙,而TCP才是GET和POST怎么實現(xiàn)的基本。GET和POST本質(zhì)上就是TCP鏈接职祷,并無差別氏涩。
我覺得這就是面試的一道坑哈。
GET有梆,POST請求過程有些不同:
1. GET請求是尖,瀏覽器會把http header和data一并發(fā)送出去,服務器響應泥耀,返回數(shù)據(jù)饺汹;
2. POST請求,瀏覽器先發(fā)送header痰催,服務器響應100兜辞,瀏覽器再發(fā)送data,服務器響應陨囊,返回數(shù)據(jù)