javascript - HTTP中的get、post請(qǐng)求和ajax的get、post請(qǐng)求是一個(gè)東西嗎?
問(wèn)題描述
http請(qǐng)求和ajax請(qǐng)求我知道不是一個(gè)東西,ajax請(qǐng)求中比http中攜帶了一些信息,那么http的get post請(qǐng)求和ajax的get post請(qǐng)求那就不是一回事嘍?大神求賜教,求噴。
問(wèn)題解答
回答1:這個(gè)東西不能這么去對(duì)比,http 是一種協(xié)議, ajax 是一種請(qǐng)求數(shù)據(jù)的方式,ajax 發(fā)出去的就是 http請(qǐng)求,所以 get,post 是同一個(gè)東西,是 http 請(qǐng)求的一種方式
回答2:通過(guò)ajax實(shí)現(xiàn)的前后端接口調(diào)用,是基于http協(xié)議的。本質(zhì)上就是通過(guò)前端向后端發(fā)起一個(gè)http請(qǐng)求,你所說(shuō)的ajax的get post其實(shí)就是http的get post。ajax請(qǐng)求中比http攜帶更多的信息?你把網(wǎng)絡(luò)通訊協(xié)議和異步通訊技術(shù)兩個(gè)概念搞混了,舉個(gè)不恰當(dāng)?shù)睦?,好比是在說(shuō)“貨幣”是不是比“人民幣”更值錢?
回答3:http 請(qǐng)求提供網(wǎng)絡(luò)交互的基礎(chǔ)能力,常見(jiàn) http 動(dòng)詞有:GET,POST,PUT,PATCH,DELETE,HEAD,OPTIONS。ajax 是 “Asynchronous Javascript and XML” 的縮寫,顧名思義,它強(qiáng)調(diào)異步獲取數(shù)據(jù),返回?cái)?shù)據(jù)格式要求是 json 或 XML。
所以,ajax 是一種寬松的客戶側(cè)數(shù)據(jù)請(qǐng)求實(shí)現(xiàn),采用異步方式以便提升用戶體驗(yàn)。就其自身概念而言,它只管關(guān)注客戶側(cè)自身(發(fā)出請(qǐng)求與獲得數(shù)據(jù))。http 則是客戶側(cè)與服務(wù)側(cè)的交互的一套協(xié)議規(guī)范,是所有建立其上的各種互聯(lián)網(wǎng)技術(shù)(如 RESTful, JSONP, AJAX 等)的基礎(chǔ)。
與 http, ajax 緊密相關(guān),也容易弄混的另一個(gè)概念是 RESTful,RESTful 專注于 “資源” 的表現(xiàn)層狀態(tài)轉(zhuǎn)化,它是一種架構(gòu)原則,或稱開(kāi)發(fā)方法,要求以規(guī)范形式提供 API 接口,對(duì) GET,POST,PUT,DELETE 等指令附加特定約束,比如,GET 不能改變服務(wù)側(cè)數(shù)據(jù),PUT 與 DELETE 要冪等。
舉個(gè)例子來(lái)說(shuō),客戶側(cè)用 ajax 發(fā)起一個(gè) PUT 操作,它只管發(fā)出請(qǐng)求,然后要求異步得到結(jié)果,ajax 具體實(shí)現(xiàn)可以是 RESTful 風(fēng)格的(也可以不是),而該 PUT 操作最終實(shí)現(xiàn)依賴于 http 請(qǐng)求,如果涉及跨域,瀏覽器還可能自動(dòng)插入一次 http 的 OPTIONS 查詢。
相關(guān)文章:
1. angular.js - 關(guān)于$apply()2. angular.js使用$resource服務(wù)把數(shù)據(jù)存入mongodb的問(wèn)題。3. MySQL數(shù)據(jù)庫(kù)中文亂碼的原因4. dockerfile - 我用docker build的時(shí)候出現(xiàn)下邊問(wèn)題 麻煩幫我看一下5. nignx - docker內(nèi)nginx 80端口被占用6. android-studio - Android Studio 運(yùn)行項(xiàng)目的時(shí)候一堆警告,跑步起來(lái)???7. dockerfile - [docker build image失敗- npm install]8. angular.js - Ionic 集成crosswalk后生成的apk在android4.4.2上安裝失?????9. mysql - 新浪微博中的關(guān)注功能是如何設(shè)計(jì)表結(jié)構(gòu)的?10. 如何解決Centos下Docker服務(wù)啟動(dòng)無(wú)響應(yīng),且輸入docker命令無(wú)響應(yīng)?
