javascript - HTTP中的get、post請求和ajax的get、post請求是一個東西嗎?
問題描述
http請求和ajax請求我知道不是一個東西,ajax請求中比http中攜帶了一些信息,那么http的get post請求和ajax的get post請求那就不是一回事嘍?大神求賜教,求噴。
問題解答
回答1:這個東西不能這么去對比,http 是一種協(xié)議, ajax 是一種請求數(shù)據(jù)的方式,ajax 發(fā)出去的就是 http請求,所以 get,post 是同一個東西,是 http 請求的一種方式
回答2:通過ajax實現(xiàn)的前后端接口調(diào)用,是基于http協(xié)議的。本質(zhì)上就是通過前端向后端發(fā)起一個http請求,你所說的ajax的get post其實就是http的get post。ajax請求中比http攜帶更多的信息?你把網(wǎng)絡(luò)通訊協(xié)議和異步通訊技術(shù)兩個概念搞混了,舉個不恰當(dāng)?shù)睦樱帽仁窃谡f“貨幣”是不是比“人民幣”更值錢?
回答3:http 請求提供網(wǎng)絡(luò)交互的基礎(chǔ)能力,常見 http 動詞有:GET,POST,PUT,PATCH,DELETE,HEAD,OPTIONS。ajax 是 “Asynchronous Javascript and XML” 的縮寫,顧名思義,它強(qiáng)調(diào)異步獲取數(shù)據(jù),返回數(shù)據(jù)格式要求是 json 或 XML。
所以,ajax 是一種寬松的客戶側(cè)數(shù)據(jù)請求實現(xiàn),采用異步方式以便提升用戶體驗。就其自身概念而言,它只管關(guān)注客戶側(cè)自身(發(fā)出請求與獲得數(shù)據(jù))。http 則是客戶側(cè)與服務(wù)側(cè)的交互的一套協(xié)議規(guī)范,是所有建立其上的各種互聯(lián)網(wǎng)技術(shù)(如 RESTful, JSONP, AJAX 等)的基礎(chǔ)。
與 http, ajax 緊密相關(guān),也容易弄混的另一個概念是 RESTful,RESTful 專注于 “資源” 的表現(xiàn)層狀態(tài)轉(zhuǎn)化,它是一種架構(gòu)原則,或稱開發(fā)方法,要求以規(guī)范形式提供 API 接口,對 GET,POST,PUT,DELETE 等指令附加特定約束,比如,GET 不能改變服務(wù)側(cè)數(shù)據(jù),PUT 與 DELETE 要冪等。
舉個例子來說,客戶側(cè)用 ajax 發(fā)起一個 PUT 操作,它只管發(fā)出請求,然后要求異步得到結(jié)果,ajax 具體實現(xiàn)可以是 RESTful 風(fēng)格的(也可以不是),而該 PUT 操作最終實現(xiàn)依賴于 http 請求,如果涉及跨域,瀏覽器還可能自動插入一次 http 的 OPTIONS 查詢。
相關(guān)文章:
1. thinkPHP5中獲取數(shù)據(jù)庫數(shù)據(jù)后默認(rèn)選中下拉框的值,傳遞到后臺消失不見。有圖有代碼,希望有人幫忙2. python小白 關(guān)于類里面的方法獲取變量失敗的問題3. Python2中code.co_kwonlyargcount的等效寫法4. python小白,關(guān)于函數(shù)問題5. 求救一下,用新版的phpstudy,數(shù)據(jù)庫過段時間會消失是什么情況?6. javascript - 如何用最快的速度C#或Python開發(fā)一個桌面應(yīng)用程序來訪問我的網(wǎng)站?7. mysql數(shù)據(jù)庫做關(guān)聯(lián)一般用id還是用戶名8. linux運維 - python遠(yuǎn)程控制windows如何實現(xiàn)9. python - 如何對列表中的列表進(jìn)行頻率統(tǒng)計?10. django - Python error: [Errno 99] Cannot assign requested address
