成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

使用PUT方法上傳文件如何?

2024-04-29    分類: 網(wǎng)站建設(shè)

HTTP中提供了這么多方法,放著不用簡直浪費(fèi)!流行使用POST上傳文件是因?yàn)楫?dāng)年的Web沒有太多API的支持,只能用表單來上傳文件,所以后來大家也習(xí)慣了使用POST。但現(xiàn)在既然支持了這么多API,用PUT方法上傳文件也是可以實(shí)現(xiàn)的,而且語義上更合適。 PUT方法的特點(diǎn)是傳輸?shù)膶?shí)體部分是一個(gè)無結(jié)構(gòu)的二進(jìn)制數(shù)據(jù),而POST方法則傾向于結(jié)構(gòu)化的數(shù)據(jù)。上傳文件這個(gè)行為本身就是無結(jié)構(gòu)數(shù)據(jù)的傳輸(文件是一個(gè)整體,文件的內(nèi)容與傳輸行為無關(guān)),所以使用PUT更合適。當(dāng)然,上傳文件這個(gè)行為不光是把文件丟到服務(wù)器上而已,可能還需要傳遞一些文件的相關(guān)信息,比如文件在客戶端的文件名之類的,這在使用POST方法時(shí)很容易實(shí)現(xiàn)。其實(shí)使用PUT方法也不存在什么問題,這些額外信息完全可以用自定義的HTTP請求頭來傳輸。 現(xiàn)代瀏覽器對文件操作的支持已經(jīng)很豐富了,可以直接從FILE控件的files屬性上獲取到用戶選中的文件對象,然后通過XHR對象的send方法發(fā)送到服務(wù)器,這非常方便。而且服務(wù)器端省去了對 multipart/form-data 的解析,實(shí)現(xiàn)起來更加容易。 使用PUT方法上傳文件也存在一些需要解決的問題。根據(jù)PUT的語義,我們需要知道文件上傳之后的URL(這個(gè)URL在文件上傳前訪問的話是404狀態(tài)碼),而不是像POST方法一樣,把所有的上傳都提交到同一個(gè)URL上。另外則是安全性的問題,并不是所有人都有上傳的權(quán)限,比如某個(gè)資源屬于某個(gè)用戶,只有這個(gè)特定用戶可以操作,這實(shí)現(xiàn)起來就有點(diǎn)麻煩(其實(shí)POST方法如果要實(shí)現(xiàn)這個(gè)的話也挺麻煩的,只是POST的麻煩被掩蓋了)。對于這些問題,我覺得使用文件MD5作為URL就很容易解決。文件上傳前在前端就可以計(jì)算出MD5,就可以得到上傳后的URL,上傳后文件也不會被篡改,權(quán)限問題也隨之解決了。 其實(shí)對于PUT方法上傳文件,我想到的遠(yuǎn)不止以上這些。只是我的語言比較貧乏,沒辦法把一堆關(guān)系松散的概念一下子描述出來。我打算先試著把這玩意兒先實(shí)現(xiàn)出來,證明一些想法的正確性后再做進(jìn)一步說明。

分享標(biāo)題:使用PUT方法上傳文件如何?
標(biāo)題來源:http://jinyejixie.com/news30/326130.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)站維護(hù)、網(wǎng)站營銷、網(wǎng)站設(shè)計(jì)、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
巫溪县| 苏尼特右旗| 石柱| 探索| 万安县| 工布江达县| 兴化市| 东安县| 威信县| 南开区| 太原市| 临安市| 中牟县| 桐柏县| 于都县| 宝应县| 阜新市| 卢龙县| 班玛县| 平昌县| 江门市| 温州市| 兴化市| 泾源县| 星子县| 和平区| 桓台县| 翁牛特旗| 江川县| 穆棱市| 德州市| 双江| 封丘县| 马山县| 白水县| 库车县| 桃园市| 巨鹿县| 明水县| 耿马| 永善县|