目錄
http(超文字傳輸協議(http))能幹啥
http常用兩種請求方法:get、post
get1、get方法特性
2、有關get請求的其他注釋
3、注意
post
1、有關post請求的一些其他注釋
2、注意 區別
其他http方法
web 瀏覽器可能是客戶端,而計算機上的網路應用程式也可能作為伺服器端。舉例:客戶端(瀏覽器)向伺服器提交 http 請求;伺服器向客戶端返回響應。響應包含關於請求的狀態資訊以及可能被請求的內容。
在客戶機和伺服器之間進行請求-響應時,兩種最常被用到的方法是:get 和 post。
http中的get方法通常用於請求伺服器傳送某個資源,而且應該是安全的和冪等的。
注意:這裡安全的含義僅僅是指是非修改資訊。
請注意,查詢字串(名稱/值對)是在 get 請求的 url 中傳送的:
post方法向伺服器提交資料/。比如完成表單資料的提交,將資料提交給伺服器處理。/test/demo_form.asp?name1=value1&name2=value2
請注意,查詢字串(名稱/值對)是在 post 請求的 http 訊息主體中傳送的:
name1=value1&name2=value2get請求的資料會附在url之後(就是把資料放置在http協議頭中,可能造成安全問題,因為資料外顯)。以?分割url和傳輸資料,引數之間以&相連,如:login.action?name=hyddd&password=idontknow&verify=%e4%bd%a0%e5%a5%bd。如果資料是英文本母或數字,則原樣傳送;如果是空格,轉換為+;如果是中文或其他字元,則直接把字串用base64加密,得出如:%e4%bd%a0%e5%a5%bd,其中%xx中的xx為該符號以16進製表示的ascii碼值。而與之對應的,post把提交的資料放置在http包的包體中。
post的安全性要比get的安全性高。注意:這裡所說的安全性和上面get提到的「安全」不是同個概念。上面「安全」的含義僅僅是不作資料修改,而這裡安全的含義是真正的security的含義。比如:通過get提交資料,使用者名稱和密碼將明文出現在url上,因為:(1)登入頁面有可能被瀏覽器快取,(2)其他人檢視瀏覽器的歷史紀錄,那麼別人就可以拿到你的賬號和密碼了,除此之外,使用get提交資料還可能會造成cross-site request forgery攻擊(csrf,跨站請求偽造,也被稱為:one click attack/session riding)。
特性
get
post
後退按鈕/重新整理
無害資料會被重新提交(瀏覽器應該告知使用者資料會被重新提交)。
書籤
可收藏為書籤
不可收藏為書籤
快取
能被快取
不能快取
編碼型別
歷史
引數保留在瀏覽器歷史中。
引數不會儲存在瀏覽器歷史中。
對資料長度的限制
是的。當傳送資料時,get 方法向 url 新增資料;url 的長度是受限制的(url 的最大長度是 2048 個字元)。
無限制。
對資料型別的限制
只允許 ascii 字元。
沒有限制。也允許二進位制資料。
安全性
與 post 相比,get 的安全性較差,因為所傳送的資料是 url 的一部分。
在傳送密碼或其他敏感資訊時絕不要使用 get !
post 比 get 更安全,因為引數不會被儲存在瀏覽器歷史或 web 伺服器日誌中。
可見性
資料在 url 中對所有人都是可見的。
資料不會顯示在 url 中。
put讓伺服器用請求的主體部分來建立乙個由所請求的url命名的新文件;如果那個文件存在的話,就用這個主體來代替它。
delete
請求伺服器刪除指定url所對應的資源。但是,客戶端無法保證刪除操作一定會被執行,因為http規範允許伺服器在不通知客戶端的情況下撤銷請求。
head
與get方法的行為很類似,但伺服器在響應中只返回實體的主體部分。這就允許客戶端在未獲取實際資源的情況下,對資源的首部進行檢查,
使用head,我們可以更高效的完成以下工作:
①. 在不獲取資源的情況下,了解資源的一些資訊,比如資源型別;
②. 通過檢視響應中的狀態碼,可以確定資源是否存在;
③. 通過檢視首部,測試資源是否被修改。
trace
trace方法會在目的伺服器端發起乙個「回環」診斷,我們都知道,客戶端在發起乙個請求時,這個請求可能要穿過防火牆、**、閘道器、或者其它的一些應用程式。這中間的每個節點都可能會修改原始的http請求,trace方法允許客戶端在最終將請求傳送到伺服器時,它變成了什麼樣子。由於有乙個「回環」診斷,在請求最終到達伺服器時,伺服器會彈回一條trace響應,並在響應主體中攜帶它收到的原始請求報文的最終模樣。這樣客戶端就可以檢視http請求報文在傳送的途中,是否被修改過了。
options
options方法用於獲取當前url所支援的方法。若請求成功,則它會在http頭中包含乙個名為「allow」的頭,值是所支援的方法,如「get, post」
http get和post方法的區別
get請求,請求的資料會附加在url之後,以?分割url和傳輸資料,多個引數用 鏈結。url的編碼格式採用的是ascii編碼,而不是unicide,即是說所有的ascii字元都要編碼之後再傳輸。post請求會把請求的資料放置在http請求包的body中,上面的item bandsaw就是實際的傳輸資...
Http Get和Post的區別
get和post是http請求的兩種基本方法,要說它們的區別,接觸過web開發的人都能說出一二。最直觀的區別就是get把引數包含在url中,post通過request body傳遞引數。你可能自己寫過無數個get和post請求,或者已經看過很多權威 總結出的他們的區別,你非常清楚知道什麼時候該用什麼...
HTTP get和post的區別
get和post是http與伺服器互動的方式,說到方式,其實總共有四種 put,delete,post,get。他們的作用分別是對伺服器資源的增,刪,改,查。所以,get是獲取資料,post是修改資料。但是,現在大家都不這麼幹了!只用乙個方式就可以做增刪查減的操作。區別分析 get把請求的資料放在u...