1. 程式人生 > >REST風格(RESTful)的風趣理解

REST風格(RESTful)的風趣理解

背景:
 

小A準備給他外地的女朋友寄一封愛情的信件,於是去學校的商店買了一個信封,外加一些非常漂亮的信紙

回到宿舍,他詩興大發,洋洋灑灑一封幾千字的情書就寫好了,該填信封了,這時,他對信封有點不滿意

為什麼這樣說呢?他發現他買的信封竟然需要自己DIY,需要自己寫填自己想填的內容,可能這類信封的設計初衷,是為了顯示寄信人的創意,可是這很操蛋不是嗎,這樣的信封郵局會收嗎?

於是他找到了賣信封的小姐姐

 

小A:美女,我買的信封怎麼這麼奇葩呀?上面居然需要自己設計,這樣的東西一點不規範呢

商店姐姐:這不符合當代年輕人的個性嗎?不是為了顯示你寄信的用心和獨特嗎

小A:可是,假如我在上面寫一些無關緊要的內容,郵局的人會不會殺了我

商店姐姐:傻瓜,我的意思是你可以在上面畫或者一些有趣的東西,基本資訊肯定還是要按照郵局的標準來,我這裡有個模板,你自己看看

小A接過來,恍然大悟,原來是這樣,標準還是標準,要是不按照標準來,郵局的人每天光看信封都得累死

回到宿舍躺著,思考剛才的一幕。小A畢竟是學計算機的,突然明白過來,要是我們上網的請求亂七八糟,解析判斷請求就得哭死(就和郵局的人看亂七八糟的信封是一個道理),甚至很可能壓根就解析不了請求,因此採需要一套標準。因此,我們請求的資訊需要全部展現給伺服器(郵局)。然後郵差們在配送的過程中實際上是可以不用在意所配送的信件的狀態的,這就可以類比為REST的無狀態。當然我們是可以向快遞那樣加上快遞的物流狀態,但是在通訊的過程中,實際上是沒有必要的,這樣會消耗更多的計算力。故設計成無狀態不僅僅安全(郵差不會拆開我們的信件)還省事(不用浪費多的計算)。

提到了無狀態,當然REST還有其他幾個特性,比如,需要提供統一的介面,我們寄信肯定找郵局,收信也是。郵局我們可以理解成一個controller。

個人的理解是REST最為重要的特性就是無狀態。

雖然用寄信件類比這個過程有點牽強,因為一般我們web是需要響應的,這裡的響應我們可以理解成對方回信,這個不像HTML,是請求一定一定有響應,寄信就不一定了。

PS:REST是大佬的博士論文,有時間可拜讀一下:

有幾分可以支援一下我的CSDN賬號:https://download.csdn.net/download/zhou_438/10757303

也可以免費的百度網盤:https://pan.baidu.com/s/1nO7KCnRABXAHUmnbr63LPA 提取碼:cb3z