post請求和get請求的區(qū)別 接口編程中,為什么只用get和post?
接口編程中,為什么只用get和post?得到,帖子就夠了。。如果請求類型為text,則get和post完全相同。不同之處在于它們位于HTTP包位置。Get在HTTP報頭中,post在正文中。由于get
接口編程中,為什么只用get和post?
得到,帖子就夠了。。如果請求類型為text,則get和post完全相同。不同之處在于它們位于HTTP包位置。Get在HTTP報頭中,post在正文中。
由于get在頭中,傳輸?shù)臄?shù)據(jù)長度是有限的,而正文可以分區(qū),所以傳輸?shù)臄?shù)據(jù)長度是無限的。
作為一種通用的接口協(xié)議,get更方便。
有些人認為post比get更安全。它不存在。兩者都是明文傳輸。如果數(shù)據(jù)本身沒有加密,您可以通過抓取數(shù)據(jù)包來查看它。有兩種方法可以提高安全性:1。傳輸協(xié)議使用HTTPS。2檢查并驗證數(shù)據(jù)以防止偽造。
公司規(guī)定所有接口都用post請求,這是為什么?
受保護的void doGet(HttpServletRequest請求,HttpServletResponse響應)拋出ServletException,IOException{這個.doPost(請求,響應)}原因是其他頁面提交方法包括post和get。在這里,它僅用于將get請求轉換為post請求,而在protectedvoid dopost(HttpServletRequest request,Httpservletresponse)throws中,ServletException,IOException{}統(tǒng)一了servlet的代碼合成。如果表單提交方法是all post,則可以省略doget()。
我不知道所有者是否有此問題。我只是說我的理解
這取決于你如何理解它。跳轉和提交可以理解為傳遞值。跳轉一般是先獲取并傳遞值,然后才設置頁面,對接收到的值做相應的處理。提交可以獲取或發(fā)布也可以傳遞值。提交后,跳轉也可以在當前頁面上。
jsp form我設置他的方法為method=
發(fā)布和獲取是不同的。
Get具有以下特征:
post請求具有以下特征:
post具有create/update的語義,因此通常用于實現(xiàn)類似于“遠程過程調用”的目的。這并不違背語義學。畢竟,Linux玩得太多了。
Post可以攜帶請求體,根據(jù)語義,Post需要有請求體。如果不是,則也是“create empty resource/rewrite resource as empty”的語義。
Post不應假定為冪等,因此服務器通常使用這種方式告訴請求者Post請求不能隨意重新發(fā)送,除非在響應中明確要求(如3xx)。
發(fā)出類似post的請求。事實上,兩者在語義上是重合的。唯一的區(qū)別是
,這對put有更嚴格的限制。
顯然,一般來說,我們更喜歡冪等接口,但有時我們需要做一些不那么瑣碎的事情。所以非冪等接口是必要的。
但是,冪等post接口不必更改為put。它到底是什么最終取決于語義。
這些不是慣例。這些是HTTP協(xié)議的一部分。只有雙方都遵守協(xié)議,他們才能玩得開心。例如,如果您自己實現(xiàn)TCP客戶機,您也可以不遵守TCP協(xié)議關于序列號和ACK的規(guī)定。畢竟,你可以隨心所欲地寫,但我們稱之為bug。
類似地,
帶有副作用的get處理程序是一個bug。
get請求的主體是一個錯誤。
服務器沒有丟棄get請求正文是一個錯誤。
請求為post重定向是get為什么還有請求體?
瀉藥,手機,懶得看圖片。兩種方法,1、轉換為正確編碼,2、Unicode編碼一般是由于中文編碼不匹配造成的。例如,網站是GB2312,您提交utf8。