先看get和post的區別:
(1)get提交,請求的資料會附在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包的包體中。
因此,get提交的資料會在位址列中顯示出來,而post提交,位址列不會改變。
(2)傳輸資料的大小:首先宣告:http協議沒有對傳輸的資料大小進行限制,http協議
規範也沒有對url長度進行限制。
而在實際開發中存在的限制主要有:
get:特定瀏覽器和伺服器對url長度有限制,例如ie對url長度的限制是2083位元組(2k+35)。
對於其他瀏覽器,如netscape、firefox等,理論上沒有長度限制,其限制取決於作業系統
的支援。
因此對於get提交時,傳輸資料就會受到url長度的限制。
post:由於不是通過url傳值,理論上資料不受限。但實際各個web伺服器會規定對post提交
資料大小進行限制,apache、iis6都有各自的配置。
(3)安全性:
.post的安全性要比get的安全性高。注意:這裡所說的安全性和上面get提到的「安全」不
是同個概念。上面「安全」的含義僅僅是不作資料修改,而這裡安全的含義是真正的
security的含義,比如:通過get提交資料,使用者名稱和密碼將明文出現在url上,因為(1)登
錄頁面有可能被瀏覽器快取, (2)其他人檢視瀏覽器的歷史紀錄,那麼別人就可以拿到你
的賬號和密碼了,除此之外,使用get提交資料還可能會造成cross-site request forgery
攻擊(4)http get,post,soap協議都是在http上執行的
1)get:請求引數是作為乙個key/value對的序列(查詢字串)附加到url上的
查詢字串的長度受到web瀏覽器和web伺服器的限制(如ie最多支援2048個字元
),不適合傳輸大型資料集同時,它很不安全
2)post:請求引數是在http標題的乙個不同部分(名為entity body)傳輸的,這一部分
urlencoded。post設計用來支援web窗體上的使用者字段,其引數也是作為key/value對傳輸
。但是:它不支援複雜資料型別,因為post沒有定義傳輸資料結構的語義和規則。
3)soap:是http post的乙個專用版本,遵循一種特殊的xml訊息格式
content-type設定為: text/xml 任何資料都可以xml化。
android通過網路訪問資料庫,關於資料庫使用者名稱密碼等資訊不要借助http方式,因為http方式是明文的,其中的資訊很容易被抓包獲取。應該用https協議。
android 的httpurlconnection連線url 要記得設定連線超時,如果網路不好,android系統在超過預設時間會收回資源中斷操作.
簡單物件訪問協議 SOAP 介紹
簡單物件訪問協議 soap 介紹 第乙個四行是標準的http post是http的動詞,所有的http訊息都需要主機。content type和content length部分是所有包含 payload 的http訊息所需要的。content type text xml 表示payload是乙個傳送...
SOAP以及常用WebService標準
wsdl web service description language 詳細說明了web服務的介面 即每個被呼叫的方法以及它能夠接收和返回的引數 disco discovery protocol 發現協議 作用相當於乙個指標,幫助所有的web服務在特定的web站點山進行定位.該協議可以為乙個公司...
rest 以及restful 簡單介紹
rest representational state transfer 直接翻譯 表現層狀態轉移。通俗來講就是 資源在網路中以某種表現形式進行狀態轉移。resource 資源,即資料 前面說過網路的核心 比如 newsfeed,friends等 representational 某種表現形式,比如...