1. 程式人生 > >get和post的使用場景

get和post的使用場景

GET和POST兩種方法都是將資料送到伺服器。HTTP標準包含這兩種方法是為了達到不同的目的。

POST用於建立資源,資源的內容會被編入HTTP請示的內容中。例如,處理訂貨表單、在資料庫中加入新資料行等。

當請求無副作用時(如進行搜尋),便可使用GET方法;當請求有副作用時(如新增資料行),則用POST方法。一個比較實際的問題是:GET方法可能會產生很長的URL,或許會超過某些瀏覽器與伺服器對URL長度的限制。

若符合下列任一情況,則用POST方法:

* 請求的結果有持續性的副作用,例如,資料庫內新增新的資料行。
* 若使用GET方法,則表單上收集的資料可能讓URL過長。
* 要傳送的資料不是採用7位的ASCII編碼。


若符合下列任一情況,則用GET方法:

* 請求是為了查詢資源,HTML表單資料僅用來幫助搜尋。
* 請求結果無持續性的副作用。

* 收集的資料及HTML表單內的輸入欄位名稱的總長不超過1024個字元。

HTTP 定義了與伺服器互動的不同方法,最常用的有4種,Get、Post、Put、Delete,如果我換一下順序就好記了,Put(增),Delete(刪),Post(改),Get(查),即增刪改查,下面簡單敘述一下:

1)Get, 它用於獲取資訊,注意,他只是獲取、查詢資料,也就是說它不會修改伺服器上的資料,從這點來講,它是資料安全的,而稍後會提到的Post它是可以修改資料的,所以這也是兩者差別之一了。

2) Post,它是可以向伺服器傳送修改請求,從而修改伺服器的,比方說,我們要在論壇上回貼、在部落格上評論,這就要用到Post了,當然它也是可以僅僅獲取資料的。

3)Delete 刪除資料。可以通過Get/Post來實現。用的不多,暫不多寫,以後擴充。

4)Put,增加、放置資料,可以通過Get/Post來實現。用的不多,暫不多寫,以後擴充。


下面簡述一下Get和Post區別:

1) GET請求的資料是放在HTTP包頭中的,也就是URL之後,通常是像下面這樣定義格式的,(而Post是把提交的資料放在HTTP正文中的)。

login.action?name=hyddd&password=idontknow&verify=%E4%BD%E5%A5%BD

a,以 ? 來分隔URL和資料; 

b,以& 來分隔引數;

c,如果資料是英文或數字,原樣傳送;

d,如果資料是中文或其它字元,則進行BASE64編碼。  

2)GET提交的資料比較少,最多1024B,因為GET資料是附在URL之後的,而URL則會受到不同環境的限制的,比如說IE對其限制為2K+35,而POST可以傳送更多的資料(理論上是沒有限制的,但一般也會受不同的環境,如瀏覽器、作業系統、伺服器處理能力等限制,IIS4可支援80KB,IIS5可支援100KB)。

3)Post的安全性要比Get高,因為Get時,引數資料是明文傳輸的,而且使用GET的話,還可能造成Cross-site request forgery攻擊。而POST資料則可以加密的,但GET的速度可能會快些。

所以綜上幾點,總結成下表:

操作方式

資料位置

明文密文

資料安全

長度限制

應用場景

GET

HTTP包頭

明文

不安全

長度較小

查詢資料

POST

HTTP正文

可明可密

安全

支援較大資料傳輸

修改資料


總的來說,get是用來查詢資料,post是用來修改資料。比方說,我們要在論壇上回貼、在部落格上評論,這就要用到Post了,當然它也是可以僅僅獲取資料的。

相關推薦

什麼是http協議?getpost請求有什麼區別?http請求content-Type有幾種,有什麼區別?http適合什麼場景?http狀態碼有哪些?

這裡是修真院後端小課堂,每篇分享文從 【背景介紹】【知識剖析】【常見問題】【解決方案】【編碼實戰】【擴充套件思考】【更多討論】【參考文獻】 八個方面深度解析後端知識/技能,本篇分享的是: 【什麼是http協議?get和post請求有什麼區別?http請求content-Type有幾種

GETPOST的區別使用場景

區別: 最直觀的區別就是GET把引數包含在URL中,POST通過request body傳遞引數。 你輕輕鬆鬆的給出了一個“標準答案”: GET在瀏覽器回退時是無害的,而POST會再次提交請求。 GET產生的URL地址可以被Bookmark,而POST

getpost的使用場景

GET和POST兩種方法都是將資料送到伺服器。HTTP標準包含這兩種方法是為了達到不同的目的。 POST用於建立資源,資源的內容會被編入HTTP請示的內容中。例如,處理訂貨表單、在資料庫中加入新資料行等。 當請求無副作用時(如進行搜尋),便可使用GET方法;當請求有副作用時

GETPOST區別總結

get 、post 、區別一、GET和POST區別的普遍看法:HTTP 定義了與服務器交互的不同方法,最常用的有4種,Get、Post、Put、Delete,如果我換一下順序就好記了,Put(增),Delete(刪),Post(改),Get(查),即增刪改查,下面簡單敘述一下:1)Get, 它用於獲取信息,註

發送getpost請求時常用的content-type

encode json數據格式 ima for www 下載 orm 文件上傳 服務器 常見的媒體格式類型如下: text/html : HTML格式 text/plain :純文本格式 text/xml : XML格式

java--request對象中的getpost差異

spa ont ava request對象 blog family tro nbsp span post跟get的差異,優先選post post的缺陷 java--request對象中的get和post差異

HttpClient GETPOST請求

pri execute public methods gre col esp odt stringbu package com.rogue.hclient; import java.io.BufferedReader; import java.io.IOExceptio

PHP中常用的超全局變量 表單中getpost提交方式的區別 session與cookie的區別 GD庫是做什麽用的

屬性 過程 生成報表 用戶訪問 服務器 接收 file pla request PHP中常用的超全局變量 $_GET ----->get傳送方式$_POST ----->post傳送方式$_REQUEST ----->可以接收到get和post兩種方式的值

java基礎之getpost的差別

oge tracking data- 宋體 行處理 art 其它 family 我們 上篇博文講到HTTP協議,本篇介紹HTTP請求方法中get和post的差別: 首先,最明顯的一點表象上的差別:GET 方式。將請求參數附加在url之後,POST將請求參數附加在請求頭

http基本getpost請求

read exce pen timeout etc builder pri void tin get請求: private static void httpGet(){ BufferedReader br = null; HttpU

Fiddler getpost數據

fiddler請求數據get數據post數據Get和post數據可以用jmeter或python,但Fiddler也可以實現喔,非常簡單。 打開Fiddler,去到Composer-----Parsed 方法可以下拉選擇,get或post,還有其他很多方法;地址寫上自己的服務器地址;HTTP協議版本根據實際

ajax的get post方式發送請求

reat hang utf-8 util tro scheme script lencod ref <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% St

GETPOST區別

密碼 ipa web 是的 ica get 後退 進制數 www GETPOST 後退按鈕/刷新 無害 數據會被重新提交(瀏覽器應該告知用戶數據會被重新提交)。 書簽 可收藏為書簽 不可收藏為書簽 緩存 能被緩存 不能緩存 編碼類型 applicatio

C/C++使用libcurl庫發送http請求(getpost可以用於請求html信息,也可以請求xmljson等串)

網絡連接 get 編譯 eas views vs2015 return tar linux C++要實現http網絡連接,需要借助第三方庫,libcurl使用起來還是很方便的 環境:win32 + vs2015 如果要在Linux下使用,基本同理 1,下載

後臺發送http請求通用方法,包括getpost

util line 通用方法 返回 finall 6.0 val except ktr package com.examsafety.service.sh; import java.io.BufferedReader; import java.io.IOExceptio

GETPOST請求的區別

cat nal 賬號 span asc 交互 cap 開發 code GET和POST請求的區別 GET請求GET /books/?sex=man&name=Professional HTTP/1.1Host: www.wrox.comUser-Agent: Mo

網絡請求HttpWebRequest的GetPost

toe 應對 sts 引用 style eat == .aspx web 用下邊的小例子講解具體功能的實現: 首先,我們想要請求遠程站點,需要用到HttpWebRequest類,該類在System.Net命名空間中,所以需要引用一下。另外,在向請求的頁面寫入參數時需要用到S

SpringBoot構建RESTful service完成GetPost

import buddy rom div demo 裏的 參數 ont 瀏覽器中 一個基本的RESTfule service最進場向外提供的請求Method就是Get和Post。 在Get中,常用的都會在請求上帶上參數,或者是路徑參數。響應Json。 在Post中,常用

http協議中getpost的區別

httpHttp定義了與服務器交互的不同方法,最基本的方法有4種,分別是GET,POST,PUT,DELETEURL全稱是資源描述符,我們可以這樣認 為:一個URL地址,它用於描述一個網絡上的資源,而HTTP中的GET,POST,PUT,DELETE就對應著對這個資源的查 ,改 ,增 ,刪 4個操作。到這裏,

python request 接口測試getpost請求

.post .get access username int 用戶 post請求 運行 開發 開發IDE:pycharm python:2.7.10 get請求 # coding: UTF-8 #兼容中文字符,如果沒有這句,程序中有中文字符時,運行會報錯import