超文字傳輸協議http被用於在web瀏覽器和**伺服器之間傳遞資訊。http協議以明文方式傳送內容,不提供任何方式的資料加密,如果攻擊者擷取了web瀏覽器和**伺服器之間的傳輸報文,就可以直接讀懂其中的資訊,因此http協議不適合傳輸一些敏感資訊,比如信用卡號、密碼等。
為了解決http協議的這一缺陷,需要使用另一種協議:安全套接字層超文字傳輸協議https。為了資料傳輸的安全,https在http的基礎上加入了ssl協議,ssl依靠證書來驗證伺服器的身份,並為瀏覽器和伺服器之間的通訊加密。
https和http的區別主要為以下四點:
https協議需要到ca申請證書,一般免費證書很少,需要交費。
http是超文字傳輸協議,資訊是明文傳輸,https 則是具有安全性的ssl加密傳輸協議。
http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。
http的連線很簡單,是無狀態的;https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議,比http協議安全。
關於網路介面的呼叫這裡不再過多說明,因為一般介面都會有詳細的文件,比如:請求方式get/post、引數格式、返回型別等。
為了安全起見,都會對敏感資料進行加密,而最常用的基本都是md5。
qstring md5(const qstring &text)
進行ssl認證、設定傳輸的引數、設定訊息頭、開始請求、處理返回結果。
loginnetworkmanager::loginnetworkmanager(qobject *parent)
: qnetworkaccessmanager(parent)
// 結束請求
loginnetworkmanager::~loginnetworkmanager()
}// 設定登入資料
void loginnetworkmanager::setparams(const qstring &username, const qstring &password)
void loginnetworkmanager::execute()
// 響應結束
void loginnetworkmanager::replyfinished(qnetworkreply *reply)
}if (object.contains("code"))}}
}// 傳送結果資料
if (!struserid.isempty())
else
}
loginnetworkmanager *ploginnetworkmanager = new loginnetworkmanager(this);
connect(ploginnetworkmanager, signal(onsuccess(const qstring &)), this, slot(onsuccess(const qstring &)));
connect(ploginnetworkmanager, signal(onfail(int)), this, slot(onfail(int)));
// 設定引數
ploginnetworkmanager->setparams("test", "123456");
ploginnetworkmanager->execute();
一般來說常用的返回格式為json、xml,當然也可以用特定格式的字串,但大多數都是json較多。
得到結果後,我們就可以對返回的json進行解析,然後處理!
正確:
「」錯誤:
HTTPS和HTTP的區別
https secure hypertext transfer protocol 安全超文字傳輸協議 它是乙個安全通訊通道,它基於http開發,用於在客戶計算機和伺服器之間交換資訊。它使用安全套接字層 ssl 進行資訊交換,簡單來說它是http的安全版。它是由netscape開發並內置於其瀏覽器中,...
HTTPS和HTTP的區別
https secure hypertext transfer protocol 安全超文字傳輸協議 它是乙個安全通訊通道,它基於http開發,用於在客戶計算機和伺服器之間交換資訊。它使用安全套接字層 ssl 進行資訊交換,簡單來說它是http的安全版。它是由netscape開發並內置於其瀏覽器中,...
http和https的區別
在url前加https 字首表明是用ssl加密的。你的電腦與伺服器之間收發的資訊傳輸將更加安全。web伺服器啟用ssl需要獲得乙個伺服器證書並將該證書與要使用ssl的伺服器繫結。http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。http的連線很簡單,是無狀態的...