一般我們在瀏覽器輸入乙個**訪問**都是get請求;再form表單中,可以通過設定method指定提交方式為get或者post提交方式,預設為get提交方式。
http定義了與伺服器互動的不同方法,其中最基本的四種:get,post,put,delete,head,其中get和head被稱為安全方法,因為使用get和head的http請求不會產生什麼動作。不會產生動作意味著get和head的http請求不會在伺服器上產生任何結果。但是安全方法並不是什麼動作都不產生,這裡的安全方法僅僅指不會修改資訊。
搞清楚了兩者的原理區別後,我們來看一下在實際應用中的區別。
首先,我們先看一下http請求的格式:
在http請求中,奇異行必須是乙個請求行,包括請求方法,請求url,報文所用http版本資訊。緊接著是乙個herders小節,可以有零個或乙個首部,用來說明伺服器要使用的附加資訊。在首部之後就是乙個空行,最後就是報文實體的主體部分,包含乙個由任意資料組成的資料塊。但是並不是所有的報文都包含實體的主體部分。
get請求,請求的資料會附加在url之後,以?分割url和傳輸資料,多個引數用&連線。url的編碼格式採用的是ascii編碼,而不是uniclde,即是說所有的非ascii字元都要編碼之後再傳輸。
post請求:post請求會把請求的資料放置在http請求包的包體中。上面的item=bandsaw就是實際的傳輸資料。
因此,get請求的資料會暴露在位址列中,而post請求則不會。
在http規範中,沒有對url的長度和傳輸的資料大小進行限制。但是在實際開發過程中,對於get,特定的瀏覽器和伺服器對url的長度有限制。因此,在使用get請求時,傳輸資料會受到url長度的限制。
對於post,由於不是url傳值,理論上是不會受限制的,但是實際上各個伺服器會規定對post提交資料大小進行限制,apache、iis都有各自的配置。
post的安全性比get的高。這裡的安全是指真正的安全,而不同於上面get提到的安全方法中的安全,上面提到的安全僅僅是不修改伺服器的資料。通過get提交資料,使用者名稱和密碼將明文出現在url上,因為登入頁面有可能被瀏覽器快取,其他人檢視瀏覽器的歷史紀錄,那麼別人就可以拿到你的賬號和密碼了,除此之外,使用get提交資料還可能會造成cross-site request forgery攻擊。
總結一下,get是向伺服器發索取資料的一種請求,而post是向伺服器提交資料的一種請求,在form(表單)中,method預設為」get」,實質上,get和post只是傳送機制不同,並不是乙個取乙個發!
status,狀態碼描述了請求過程中發生的情況
reson-phrase 是數字狀態碼的可讀版本
常見的狀態碼以及含義如下:
200 ok 伺服器成功處理請求
301/302 moved permanently(重定向)請求的url已移走。響應報文中應該包含乙個location url,說明資源現在所處的位置
304 not modified(未修改) 客戶的快取資源是最新的,要客戶端使用快取內容
404 not found 未找到資源
501 internal server error 伺服器遇到錯誤,使其無法對請求提供服務
HTTP中的get請求與post請求
首先,我先介紹一下http請求的基本原理 假如我們在瀏覽器中輸入乙個 訪問的話,其實這就是乙個get請求。get一般是用於獲取 查詢資源資訊,而post一般是用於更新資源資訊。get請求例項 get host weibo.com 上面3行是get請求的例項,我們從例項中可以看到是請求的url位址,而...
HTTP協議中Get與Post請求
前言 這一段時間又了解到了一些自己之前沒有接觸過的東西,感覺挺容易混淆的,於是在學習完之後,就對其就行了總結 區分!分享 首先,http協議中包含了四種提交方式 get,post,delete,和put get和post是最常見的兩種。1 如果表單是以get方式將資料傳送到服務端,那麼會將使用者在表...
HTTP協議中GET請求與POST請求的區別
在http的八種請求方式中,最常用的兩種請求方式為get方式與post方式,今天我們來分析以下兩種請求方式的區別 方面get請求 post請求 是否可見 get請求的請求資訊會直接顯示在url位址列中,可以被使用者直接看到 post請求資訊不會顯示在位址列中,也不會儲存在瀏覽記錄中 傳輸長度 受到u...