在我們日常的編程學習和作業當中,往往都會和資料扯上關系,和資料扯上關系后肯定又會涉及到資料的發送和接收和請求。
現在的我不是一個作業者,而是一個學生,現在我作為一個學生的身份簡單介紹一下剛剛接觸到的Ajax的向服務器發送請求的2種請求型別:GET與POST。
第一種是GET的方法,它是用來向服務器發送資料和請求的,最常見的就是用于表單資料的提交,而且也是Form表單的默認的提交方式。這種提交方法是存在風險的,當它在發送資料的時候會將表單里所需要提交的資料添加到屬性action所指向的地址URL后面,并且在資料與地址它們之間使用 ” ? ”符號來進行連接,而且資料的各個變數之間使用 ”& ”符號進行拼接(例下圖所示GET型別)。


正是因為它在發送資料的時候會把資料顯示在請求的地址URL上面,所以它是存在風險的,所以它也是屬于不安全的提交方式,因為在發送資料的那個程序中,如果把發送的資訊添加在請求的action屬性所指向的地址URL值的后面,這樣可以讓用戶直接在瀏覽器上面就可以看到提交的全部資料,還有可能連同一些公司系統的內部秘密資訊也一同暴露在用戶眼前,也正是因為它會把提交的全部資料直接拼接在請求的action屬性所指向的地址URL值的后面,所以它的提交的資訊也是有限制的,不能用于發送較大的資料。這是因為受瀏覽器對URL的字符限制,所以它的資料量也隨之被限制了。它發送資料的時候會把資料拼接在請求的地址URL上面,這樣資料也會占用瀏覽器賦予URL的字符長度,所以瀏覽器對于URL的字符長度的限制從而限制了發送的資料的資料量,而且每個瀏覽器對于URL的字符長度的限制都不一樣,所以在每個瀏覽器里面能夠發送的資料量也會不一樣。當然,它有缺點但也肯定有優點,既然它能夠發送資料,那也肯定可以獲取資料,與另一種POST方式相比,它擁有更快的執行速度,執行方式也比較單純簡單,在大部分情況下都能夠使用。雖然它在發送資料方面受制于瀏覽器對URL的長度會有些負面影響,但是它在獲取資料方面它只是單純的獲取資料,獲取完資料后對于重繪頁面是沒有負面影響的。
另一種是POST請求型別,它也是可以向服務器發送資料和請求的,常用于Ajax提交資料(就我而言目前我在學習的時候我就是常用于Ajax提交資料),相對于GET方法,這POST方法的安全性較高,在它發送資料或者請求的時候,資料不會作為URL的一部分,不會被快取、保存在服務器日志、以及瀏覽器瀏覽記錄中,它在發送資料的時候不會像GET那樣,把資料添加到URL上面,而POST提交資料的時候是通過HTTP協議的POST機制,將表單里面所需要提交的所有資料內容存放在html的header標簽里面一起發送到action屬性所值的地址URL里,用戶是看不到這個地址的,而header也不是一個能夠形成段落內容的元素,所以它不需要顯示出來,因為它不需要顯示出來,所有用戶也看不到里面的內容,所以安全性也就更高,而且在發送包含未知字符的用戶輸入資料時,POST方法也比GET方法更加的穩定更加的可靠。


再比較于GET方式,它的資料發送也是高效率的,它不像GET方式那樣受到瀏覽器對于URL字符長度限制而影響到發送的資料量,它則是可以傳輸較大的資料量的,所以在上傳檔案和傳輸較大的資料的時候,我們通常使用的是POST方法。雖說它的執行速度比GET方法慢,但相對于我們人來說,它們一樣都是比較快的,我們是感覺不到的,只有經過計算機的精準的計算才能發現它們的快慢,所以關于速度這點是可以忽略掉, 再比較于GET的方法,GET獲取資料后重繪頁面是沒有負面影響的,而POST方法則是有負面影響的,在POST方法重繪頁面重復獲取和提交資料則有可能會產生不良的后果。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/51505.html
標籤:非技術類
上一篇:windows桌面快取重繪問題
