狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

restful和普通請(qǐng)求區(qū)別,restful和http的區(qū)別

admin
2024年8月26日 14:4 本文熱度 1036

前言

        今天在對(duì)接一個(gè)接口時(shí),客戶將DELETED請(qǐng)求設(shè)置了body參數(shù),導(dǎo)致一個(gè)功能反復(fù)搞了半天,今天就來(lái)說下這兩者的區(qū)別。

1、HTTP概述

        HTTP(HyperText Transfer Protocol)是一種用于從WWW(萬(wàn)維網(wǎng))服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議。它使得瀏覽器可以更加高效地工作,同時(shí)減少網(wǎng)絡(luò)傳輸量。HTTP采用了請(qǐng)求/響應(yīng)模型,客戶端向服務(wù)器發(fā)送一個(gè)請(qǐng)求,服務(wù)器返回相應(yīng)的響應(yīng)。這種通信過程包括以下幾個(gè)關(guān)鍵環(huán)節(jié):

  1. 請(qǐng)求消息(Request Message):由請(qǐng)求行、請(qǐng)求頭、空行和消息體組成。請(qǐng)求行包括HTTP方法、URL和HTTP版本。

  2. 響應(yīng)消息(Response Message):由狀態(tài)行、響應(yīng)頭、空行和響應(yīng)體組成。狀態(tài)行包括HTTP版本、狀態(tài)碼和原因短語(yǔ)。

常見的HTTP方法包括:

  • GET:用于請(qǐng)求資源

  • POST:用于提交數(shù)據(jù)

  • PUT:用于更新資源

  • DELETE:用于刪除資源

        HTTP是無(wú)狀態(tài)的協(xié)議,即每個(gè)請(qǐng)求都是獨(dú)立的,服務(wù)器不會(huì)保存任何請(qǐng)求的狀態(tài)信息。

2、RESTful概述

       RESTful(Representational State Transfer)是一種軟件架構(gòu)風(fēng)格,主要用于設(shè)計(jì)網(wǎng)絡(luò)應(yīng)用的API。它基于以下幾個(gè)原則:

  1. 資源(Resources):RESTful以資源為中心,資源通過URI(統(tǒng)一資源標(biāo)識(shí)符)進(jìn)行標(biāo)識(shí)。

  2. 統(tǒng)一接口(Uniform Interface):RESTful API通過一組標(biāo)準(zhǔn)的HTTP方法(GET、POST、PUT、DELETE)對(duì)資源進(jìn)行操作。

  3. 無(wú)狀態(tài)(Stateless):每個(gè)請(qǐng)求都包含了處理該請(qǐng)求所需的全部信息,服務(wù)器不會(huì)在請(qǐng)求之間保存任何狀態(tài)。

  4. 緩存(Cacheable):響應(yīng)應(yīng)該明確標(biāo)記為可緩存或不可緩存,以提高客戶端的效率。

        RESTful設(shè)計(jì)風(fēng)格使得API更具一致性和可維護(hù)性,同時(shí)利用HTTP協(xié)議的標(biāo)準(zhǔn)特性來(lái)簡(jiǎn)化網(wǎng)絡(luò)應(yīng)用的開發(fā)。

3、HTTP與RESTful的主要區(qū)別

  • URL表達(dá)形式不同

    • HTTP接口的URL表達(dá)形式可以不遵循任何標(biāo)準(zhǔn)格式。

    • RESTful調(diào)用的URL必須遵循REST架構(gòu)風(fēng)格的規(guī)范,通常包括資源路徑。

  • 請(qǐng)求方法不同

    • HTTP接口調(diào)用可以使用GET、POST、PUT、DELETE等HTTP請(qǐng)求方法。

    • RESTful調(diào)用嚴(yán)格遵循標(biāo)準(zhǔn)的HTTP方法,并且這些方法具有特定的語(yǔ)義。

  • 數(shù)據(jù)傳輸格式不同

    • HTTP接口調(diào)用可以使用任意數(shù)據(jù)格式,如form、json、xml等。

    • RESTful調(diào)用通常使用JSON或XML數(shù)據(jù)格式進(jìn)行數(shù)據(jù)傳輸,強(qiáng)調(diào)數(shù)據(jù)的自描述性。

  • 資源定義不同

    • HTTP接口調(diào)用不一定需要資源的具體定義。

    • RESTful調(diào)用要求在URL中明確定義資源,每個(gè)資源都有一個(gè)唯一的標(biāo)識(shí)符URI。

4、詳細(xì)對(duì)比分析

4.1請(qǐng)求方法

        HTTP接口調(diào)用可以使用各種HTTP方法,而RESTful嚴(yán)格限定了方法的使用場(chǎng)景。例如,GET方法僅用于獲取資源,POST方法用于創(chuàng)建資源,PUT方法用于更新資源,DELETE方法用于刪除資源。這種規(guī)范化的設(shè)計(jì)提高了API的清晰度和一致性。

        需要特別指出的是,在標(biāo)準(zhǔn)的請(qǐng)求中,GET和DELETE方法是不能往body里面?zhèn)鲄?shù)的。這是因?yàn)镚ET方法主要用于請(qǐng)求資源,而不是發(fā)送數(shù)據(jù),DELETE方法用于刪除資源,因此也不需要在body中傳遞參數(shù)。

4.2 數(shù)據(jù)傳輸格式

        HTTP接口調(diào)用的數(shù)據(jù)格式可以是form、json、xml等多種形式,而RESTful更傾向于使用JSON或XML。這種統(tǒng)一的數(shù)據(jù)格式使得客戶端和服務(wù)器之間的數(shù)據(jù)交換更為一致和高效。

4.3 資源定義

        HTTP接口調(diào)用不依賴于具體的資源定義,而RESTful強(qiáng)調(diào)資源和API請(qǐng)求的對(duì)應(yīng)關(guān)系。每個(gè)資源在RESTful API中都有一個(gè)唯一的URI,通過標(biāo)準(zhǔn)的HTTP方法對(duì)這些資源進(jìn)行操作,使得API設(shè)計(jì)更加直觀和結(jié)構(gòu)化。

5、其他特點(diǎn)

5.1 資源標(biāo)準(zhǔn)化

        RESTful是基于HTTP協(xié)議的,HTTP協(xié)議定義的URL必須符合URI(Uniform Resource Identifier)標(biāo)準(zhǔn)。URI由協(xié)議、主機(jī)、資源路徑、查詢字符串和片段組成。因此,RESTful要求每個(gè)資源都有一個(gè)唯一的標(biāo)識(shí)符URI,這使得資源的管理更加標(biāo)準(zhǔn)化和系統(tǒng)化。

5.2 無(wú)狀態(tài)

        因?yàn)镠TTP是一種無(wú)狀態(tài)協(xié)議,所以RESTful也是無(wú)狀態(tài)的。即服務(wù)器不會(huì)保存任何客戶端請(qǐng)求的歷史信息。每個(gè)請(qǐng)求都是獨(dú)立的,服務(wù)器不會(huì)在請(qǐng)求之間保留會(huì)話狀態(tài)。這種無(wú)狀態(tài)性簡(jiǎn)化了服務(wù)器的設(shè)計(jì),同時(shí)也增強(qiáng)了系統(tǒng)的可擴(kuò)展性和可靠性。

5.3 緩存機(jī)制

        由于RESTful是基于HTTP標(biāo)準(zhǔn)定義的,因此具有HTTP緩存機(jī)制。客戶端可以在收到數(shù)據(jù)后將其存儲(chǔ)在本地緩存中,在下一次請(qǐng)求相同資源時(shí)可以減少網(wǎng)絡(luò)傳輸,提高性能。這種緩存機(jī)制可以顯著提高應(yīng)用的響應(yīng)速度和用戶體驗(yàn)。

5.4 GET和DELETE請(qǐng)求的限制

        在標(biāo)準(zhǔn)的HTTP請(qǐng)求中,GET和DELETE方法是不能往body里面?zhèn)鲄?shù)的。GET方法主要用于請(qǐng)求資源,而不是發(fā)送數(shù)據(jù),DELETE方法用于刪除資源,因此這兩種方法都不需要在body中傳遞參數(shù)。GET請(qǐng)求的參數(shù)通常附加在URL中,而DELETE請(qǐng)求通常只需要URI來(lái)標(biāo)識(shí)需要?jiǎng)h除的資源。那么有標(biāo)準(zhǔn)就有魔改,有些依賴包就會(huì)提供,但是這是一個(gè)不好的習(xí)慣,還是建議大家你不要這么玩

6、總結(jié)

        RESTful是HTTP接口調(diào)用的一種特殊實(shí)現(xiàn),遵循REST架構(gòu)風(fēng)格的規(guī)范,能夠提供更加標(biāo)準(zhǔn)化、統(tǒng)一化、可讀性和易用性的API設(shè)計(jì)。與傳統(tǒng)的HTTP接口調(diào)用相比,RESTful調(diào)用具有更加清晰明了、易于理解和維護(hù)的API設(shè)計(jì),擴(kuò)展性和靈活性也更強(qiáng)。在現(xiàn)代Web應(yīng)用開發(fā)中,理解和使用RESTful架構(gòu)風(fēng)格能夠大大提高開發(fā)效率和應(yīng)用的可維護(hù)性。

更多介紹:

1、什么是RestfulAPI?

      1、REST直接翻譯:表現(xiàn)層狀態(tài)轉(zhuǎn)移,實(shí)質(zhì)就是一種面向資源編程的方法
      2、REST描述的是在網(wǎng)絡(luò)中client和server的一種交互形式;REST本身不實(shí)用,實(shí)用的是如何設(shè)計(jì) RESTful API(REST風(fēng)格的網(wǎng)絡(luò)接口)
      3、RestfulAPI中認(rèn)為網(wǎng)絡(luò)上所有的東西都是一種資源,對(duì)這些資源操作時(shí)無(wú)非就是增刪改查
      4、網(wǎng)絡(luò)上的資源一般都用一段url代替,比如:http://www.chnsys.com/asset 代替資產(chǎn)資源
      5、根據(jù)發(fā)送請(qǐng)求的method方法判斷如何操作這些資源
        GET(SELECT):             從服務(wù)器取出資源(一項(xiàng)或多項(xiàng))。
        POST(CREATE):           在服務(wù)器新建一個(gè)資源。
        PUT(UPDATE):             在服務(wù)器更新資源(客戶端提供改變后的完整資源)。
        DELETE(DELETE):       從服務(wù)器刪除資源。
        PATCH(UPDATE):         在服務(wù)器更新資源(客戶端提供改變的屬性)。

2、HTTP的第一行包含三個(gè)信息:謂詞、URL、HTTP協(xié)議版本,三個(gè)數(shù)據(jù)使用空格隔開。

POST http://comet.chouti.com/comet/connect HTTP/1.1

    2.1、謂詞(POST)

        1. WEB API就是使用謂詞作為默認(rèn)的路由方式,最常用的謂詞有:POST\DELETE\PUT\GET,這四個(gè)謂詞對(duì)應(yīng)了“增、刪、改、查”四個(gè)動(dòng)作
        2. 其中,GET,DELETE不包含BODY,PUT,POST可以包含BODY

    2.2、URl

        1. 網(wǎng)絡(luò)上的資源一般都用一段url代替,比如:http://www.chnsys.com/asset 代替資產(chǎn)資源

    2.3、HTTP協(xié)議版本

        1. HTTP的第一行內(nèi)容就是這些: POST http://comet.chouti.com/comet/connect HTTP/1.1
        2. 接下來(lái)會(huì)有一個(gè)\r\n來(lái)進(jìn)行換行,接下來(lái)就是HTTP HEAD部分,HTTP HEAD描述了HTTP請(qǐng)求和響應(yīng)。
        3. HTTP HEAD即為HTTP協(xié)議中最重要的部分,他包含了編碼、BODY長(zhǎng)度、內(nèi)容協(xié)商等信息,你也可以包含一些自定義信息

3、RestFul API中常用的HEAD信息

      1. User-Agent:用戶代理,是什么客戶端發(fā)出的請(qǐng)求,如IE、Chrome、Fiddler等
      2. HOST:域名
      3. Authorization:驗(yàn)證信息
      4. Accept:接受何種序列化方式返回的數(shù)據(jù),用MIME表示,用于對(duì)響應(yīng)數(shù)據(jù)的內(nèi)容協(xié)商,
          可以包含多個(gè)MIME,按優(yōu)先順序排列,如application/json,application/xml,text/html
      5. Content-Type:使用一個(gè)MIME表示,表示所發(fā)送請(qǐng)求的Body的序列化方式,常見的如application/json,
          還有WEB交互最常使用的application/x-www-form-urlencoded,都表示了你的body部分的序列化方式,在請(qǐng)求、響應(yīng)中都會(huì)出現(xiàn)
      6. HTTP HEAD部分是HTTP協(xié)議中最核心的部分,可配置向非常多這里就不列舉了
      7. 響應(yīng)部分也分為頭部和Body,響應(yīng)頭部和請(qǐng)求頭部最大的不同在于響應(yīng)首行存在一個(gè)HTTP Code
          HTTP Code作為API的調(diào)用狀態(tài)的展示,也很重要,在REST API中最常用的狀態(tài)碼一般為2XX,4XX,5XX三個(gè)段
      8. 在首部之后有一個(gè)空行(\r\n)接下來(lái)就是Content,這里有具體的業(yè)務(wù)數(shù)據(jù),根據(jù)不同的Content-Type使用不同的序列化方式表示,例如JSON,XML,甚至HTML

4、用一張圖為大家展示一下這些知識(shí)


該文章在 2024/8/26 16:04:33 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved