欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
基于REST架構的Web Service設計

 先前我曾經(jīng)介紹過(guò)利用Apache Axis實(shí)現基于SOAP的Web Service實(shí)現技術(shù)和相關(guān)代碼,總的來(lái)說(shuō),SOAP的WebService解決方案雖然較為成熟,且安全性較好,但是使用門(mén)檻較高,在大并發(fā)情況下會(huì )有性能問(wèn)題,在互聯(lián)網(wǎng)上使用不太普及,因此并不太適合Web2.0網(wǎng)站服務(wù)使用,目前大量的Web 2.0網(wǎng)站使用另外一種解決方案——REST。

  REST的架構設計

REST(Representational State Transfer)是一種輕量級的WebService架構風(fēng)格,其實(shí)現和操作明顯比SOAP和XML-RPC更為簡(jiǎn)潔,可以完全通過(guò)HTTP協(xié)議實(shí)現,還可以利用緩存Cache來(lái)提高響應速度,性能、效率和易用性上都優(yōu)于SOAP協(xié)議。

  REST架構遵循了CRUD原則,CRUD原則對于資源只需要四種行為:Create(創(chuàng )建)、Read(讀?。?、Update(更新)和Delete(刪除)就可以完成對其操作和處理。這四個(gè)操作是一種原子操作,即一種無(wú)法再分的操作,通過(guò)它們可以構造復雜的操作過(guò)程,正如數學(xué)上四則運算是數字的最基本的運算一樣。

  REST架構讓人們真正理解我們的網(wǎng)絡(luò )協(xié)議HTTP本來(lái)面貌,對資源的操作包括獲取、創(chuàng )建、修改和刪除資源的操作正好對應HTTP協(xié)議提供的GET、POST、PUT和DELETE方法,因此REST把HTTP對一個(gè)URL資源的操作限制在GET、POST、PUT和DELETE這四個(gè)之內。這種針對網(wǎng)絡(luò )應用的設計和開(kāi)發(fā)方式,可以降低開(kāi)發(fā)的復雜性,提高系統的可伸縮性。

  REST的設計準則

  REST架構是針對Web應用而設計的,其目的是為了降低開(kāi)發(fā)的復雜性,提高系統的可伸縮性。REST提出了如下設計準則:

  網(wǎng)絡(luò )上的所有事物都被抽象為資源(resource);

  每個(gè)資源對應一個(gè)唯一的資源標識符(resource identifier);

  通過(guò)通用的連接器接口(generic connector interface)對資源進(jìn)行操作;

  對資源的各種操作不會(huì )改變資源標識符;

  所有的操作都是無(wú)狀態(tài)的(stateless)。

  使用REST架構

對于開(kāi)發(fā)人員來(lái)說(shuō),關(guān)心的是如何使用REST架構,這里我們來(lái)簡(jiǎn)單談?wù)勥@個(gè)問(wèn)題。REST不僅僅是一種嶄新的架構,它帶來(lái)的更是一種全新的Web開(kāi)發(fā)過(guò)程中的思維方式:通過(guò)URL來(lái)設計系統結構。REST是一套簡(jiǎn)單的設計原則、一種架構風(fēng)格(或模式),不是一種具體的標準或架構。REST有很多成功的使用案例,著(zhù)名的Delicious和Flickr都提供基于REST風(fēng)格的API使用,客戶(hù)端調用也極其方便,下面是我用ASP寫(xiě)的一個(gè)很簡(jiǎn)單的REST舉例,從中可以看出REST是多么的簡(jiǎn)單易用。

  客戶(hù)端代碼:

Private Function httpGet(url, method, data)
    Dim xmlhttp
    Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
    xmlhttp.open method, url + "?" + data, False
    xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"
    xmlhttp.setRequestHeader "Content-Length", Len(data)
    xmlhttp.send (Null)
    If (xmlhttp.Status = 200) Then httpGet = xmlhttp.responseText
    Set xmlhttp = Nothing
End Function

Private Function httpPost(url, method, data)
    Dim xmlhttp
    Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
    xmlhttp.open method, url, False
    xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"
    xmlhttp.setRequestHeader "Content-Length", Len(data)
    xmlhttp.send (data)
    If (xmlhttp.Status = 200) Then httpPost = xmlhttp.responseText
    Set xmlhttp = Nothing
End Function

Private Function httpPut(url, method, data)
    Dim xmlhttp
    Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
    xmlhttp.open method, url, False
    xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"
    xmlhttp.setRequestHeader "Content-Length", Len(data)
    xmlhttp.send (data)
    If xmlhttp.Status >= 400 And xmlhttp.Status <= 599 Then
        response.write " Error Occurred : " & xmlhttp.Status & " - " & xmlhttp.statusText
    Else
        response.write xmlhttp.responseText
    End If
    If (xmlhttp.Status = 200) Then httpPut = xmlhttp.responseText
    Set xmlhttp = Nothing
End Function

Private Function httpDelete(url, method, data)
    Dim xmlhttp
    Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
    xmlhttp.open method, url + "?" + data, False
    xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"
    xmlhttp.setRequestHeader "Content-Length", Len(data)
    xmlhttp.send (Null)
    If xmlhttp.Status >= 400 And xmlhttp.Status <= 599 Then
        response.write " Error Occurred : " & xmlhttp.Status & " - " & xmlhttp.statusText
    Else
        response.write xmlhttp.responseText
    End If
    If (xmlhttp.Status = 200) Then httpDelete = xmlhttp.responseText
    Set xmlhttp = Nothing
End Function

response.write httpPost("http://localhost/rest/service.asp", "POST", "do=POST")
response.write httpGet("http://localhost/rest/service.asp", "GET", "do=GET")
response.write httpPut("http://localhost/rest/service.asp", "PUT", "do=PUT")
response.write httpDelete("http://localhost/rest/service.asp", "DELETE", "do=DELETE")

  服務(wù)端代碼:

Response.Write Request.ServerVariables("REQUEST_METHOD")
If (Request.ServerVariables("REQUEST_METHOD")="GET") Then
 Response.Write "DO GET" + Request("do")
ElseIf (Request.ServerVariables("REQUEST_METHOD")="POST") Then
 Response.Write "DO POST" + Request("do")
ElseIf (Request.ServerVariables("REQUEST_METHOD")="PUT") Then
 Response.Write "DO PUT" + Request("do")
ElseIf (Request.ServerVariables("REQUEST_METHOD")="DELETE") Then
 Response.Write "DO DELETE" + Request("do")
End if

需要注意的是,IIS服務(wù)器默認是不支持ASP文件的PUT和DELETE操作,默認會(huì )返回“403 -Forbidden”錯誤,因此需要修改IIS的設置,修改方法是:管理根據-IIS信息服務(wù)器-網(wǎng)站-屬性-主目錄-應用程序配置-配置-映射,選擇ASP - 編輯 - 修改為全部動(dòng)作。

  關(guān)于更多關(guān)于REST方面的知識,建議閱讀《RESTful Web Services》這本書(shū)。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
C# 客戶(hù)端篇之實(shí)現Restful Client開(kāi)發(fā)(RestSharp幫助類(lèi))
REST Service 的最佳實(shí)踐,第 1 部分: 重新解析 REST Service
表單的提交方式POST和GET有什么區別
Manual:RESTful Web Services (Chinese)
深入理解REST
Ajax與REST架構簡(jiǎn)單示例
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久