html5如何將表單數據提交到數據庫表的指定空格?
為了這個問題我專門寫了一篇文章,請直接看文:
昨天在不經意的瀏覽網頁,突然收到了一個問題回答的邀請,看了這個問題我不僅思緒萬千,其實亮點不在于這個問題,這個問題本身沒沒有什么特殊,而這個問題中的一些東西讓我產生了一系列聯想,這個問題是這么問的:“html5如何將表單數據提交到數據庫表的指定空格?”。
如果放在幾年前去看這個問題,html/js怎么可能操作數據庫呀,這就是表單提交數據到數據庫的過程,你的回答則會是,這中間是需要經過一系列過程的,比如同過form表單或者ajax將數據提交給web服務器,如果是java了就一般是jboss服務器或者tomcat之類的,如果是phpweb服務的話,一般是nginx或者apache服務器,然后web服務器接到請求響應之后將再交給具體的語言進行解析,然后在接下來這些計算機語言將提交過來的字段做數據校驗處理后,會將字段與數據庫字段做一一映射。
然后計算機語言通過數據庫提供的一些協議,與數據庫進行連接,如jdbc協議,odbc協議,連上之后通過對數據庫的操作把數據存入數據庫,然后計算機語言(php或者java等)把處理結果輸出交給web服務器,web服務器再把這些輸出返回給客戶端html頁面,到此為止實現了一個請求及相應的整個過程,而這個過程中涉及的角色也比較多,如前端頁面,前端js,http協議,web服務器,后端服務計算機語言,數據庫協議等,這么多東西去實現了一次頁面數據的請求交互。
html5現在雖然很先進了,但是他畢竟是前端語言(這里他說的html5我想也有說js的意思),如果用前端語言直接去訪問數據庫的話肯定是不安全的呀,前端的js代碼是在客戶端里能看到的,誰可能那么傻將數據庫連接地址賬號密碼暴露在客戶端,如果前端的語言設計成直接連數據庫,我想那么設計者的思想肯定有問題了,也許你會反駁,我明明看到網上有寫著用js連接數據庫的方法呀,不信你看下圖內容。
這段代碼看著的確是數js連接數據庫了,那這么就有幾種可能,第一這個js不是你理解的js,是后端的一種語言,比如nodejs是一種后端的js語言,那么它連接數據庫也是沒什么問題的呀,這種情況是不會暴露數據庫地址的,第二種情況,這里的數據庫不是我們傳統意義上的數據庫,不存在什么安全性問題,如果真是前端js就能連接數據庫了,那么這樣的技術你敢用么?也就是說不存在后端開發了,所有業務邏輯都放在前端,然后用js寫業務邏輯,js去連接數據庫,那么這樣的產品還有什么安全可言,代碼豈不是都公布與眾了?雖然能用js混淆壓縮,但是還是可以反解壓不是么?只是成本問題而已。
當然,話有說回來,html5技術的確牛了許多,他實現了以前好多不能實現的東西,比如以前網站的驗證碼只是一張圖片,圖片上寫一個數字,然后就可以防止一些不法用戶的暴力請求,可是html5的技術誕生之后,這些簡單的圖片驗證碼已經防止不了,現在市面上的網上已經看不到這種驗證碼了吧,都已經改成手動滑動,或者漢字順序點擊,或者各種找同類型的等等花樣的驗證碼,12306網站應該是在這方面開了先河吧,或者有的網站直接用手機驗證碼作為驗證碼了,這個主要是短信費用的成本。
另外,市面上好多app并不一定是原生的app, 也就是用的不一定是android技術或者ios技術,而是用的html5的技術,可見html5的出現使前端地位在技術領域內提高了不少,另外近來比較流行的小程序也是對html5技術的一些封裝,可見未來html5的作用將會越來越大。
即便如此,不論html5技術發展到什么地步,但是一些方向性問題是不會變的,比如,用前端語言直接訪問數據庫這個問題是不太可能的,除非以后有一種非常強的不可破解加密技術,那樣的話有可能會有這么一天。另外我想說的在計算機世界里看著很炫酷的東西,用到的技術都是很樸實的,只不過計算機快速運算加上程序員們邏輯的智慧才讓我們看到了這華麗的一切,就比如說我們看到的動畫,一個白色小球在自由落體運動,你真以為是這個小球在向下運動么?其實不是的,程序實現的思路是先畫一張背景圖,然后再背景圖上畫一個白色的小球,然后再畫一張背景圖把原來的小球和背景給覆蓋掉,然后再畫一個小球在新的背景上(這次小球的位置比上次小球的位置略略向下一點),就這樣重復的繪制,在用戶的視覺里看到的小球在向下運動,其實是程序在一張張的繪制圖片而已,這并沒什么高深的,其實任何技術的本質上都是很質樸的,包括你看到的一些黑科技,你覺得炫酷是因為你不了解原理,你一旦了解了原理你就會發現原來也不過如此啊。
以上所有圖片均來之互聯網
大家好,我是“上世是朵花”。如果你有什么好的看法或者觀點可以在評論區展現你的才華,互動交流,如果想進一步了解我,那就關注我吧!