小心!網購支付頁面字首應是https不是http!三大區別總結!

博為峰網校發表於2018-11-09

背景: 谷歌在 2018年,2月9日宣佈從今年7月起,Chrome瀏覽器將在位址列把所有HTTP網址標示為不安全網站。

谷歌早在 2017年1月釋出的Chrome 56,開始把要求使用者輸入密碼或信用卡資訊的HTTP網頁標識為“不安全”;2017年10月釋出的Chrome62,開始把需要輸入資料的HTTP網頁和在Incognito模式下瀏覽的HTTP網站標示為“不安全”。

兩週前 進行了一家公司的電話面試,視過程中遇到了一個關於 http與https的問題,當時回答的並不好, 所以查閱了多方資料,詢問了身邊的大神, 今天將其進行了總結和整理, 希望可以幫助大家。

1、 首先我們先得了解 http與https 是什麼?

http:超文字傳輸協議,是一個客戶端和伺服器端請求和應答的標準,用於從WWW伺服器傳輸超文字到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網路傳輸減少。;

簡單來說是這麼一個流程:

小明  跟  瀏覽器爸爸  說我想要去中關村某個店家拿一些東西 (發起請求)

瀏覽器爸爸  就把  小明  要的東西記在一張清單上 (生成HTTP協議)

然後   瀏覽器爸爸  派出一個  執行緒小弟 ,噌噌噌跑到中關村的店裡,把清單遞給   店家 ,說小明要這些東西 (進行傳輸)

店家  讓  執行緒小弟   稍等,然後去屋子裡面拿小明的這些東西 (伺服器收到請求)

店家  把東西拿出來後,並且也列印了一份清單,讓  執行緒小弟  帶著清單和東西一起拿回去 (伺服器處理請求完畢)

然後   執行緒小弟  回到  瀏覽器爸爸  那邊,把伺服器給的清單和物品交給瀏覽器爸爸,瀏覽器爸爸根據清單核對物品 (瀏覽器處理響應)

然後把物品打包交給了   小明  (瀏覽器渲染並呈現介面)

https:

https協議比http協議多了一個s,字面意思上s=secure(安全)。它跟http協議一樣都是應用層協議,都是工作在TCP協議之上。

只不過 https協議在傳輸過程中的資料都是經過了加密。本質上HTTPS協議就是在TCP協議之上又加了一層SSL協議來實現了加密這個操作(不準確的說HTTPS就就是披著是SSL的皮的HTTP協議)

2、HTTPS和HTTP的區別

HTTP協議工作在80埠,HTTPS協議工作在443埠

HTTPS需要申請證書(用於驗證伺服器身份)

HTTP在TCP三次握手建立連線之後即可開始傳輸資料;HTTPS協議則需要在建立TCP連線之後客戶端與伺服器在進行SSL加密,確定對話金鑰,完成加密後才開始傳輸資料。

HTTPS協議傳輸是密文,HTTP協議傳輸是明文

大致的區別就以上 4點,其實最主要的就是SSL協議加密對話產生對話金鑰的過程

3、 http、https 等常用預設埠號

⑴. HTTP協議代理伺服器常用埠號:80/8080/3128/8081/9080
⑵. SOCKS代理協議伺服器常用埠號:1080
⑶. FTP(檔案傳輸)協議代理伺服器常用埠號:21
⑷. Telnet(遠端登入)協議代理伺服器常用埠:23

HTTP伺服器,預設的埠號為80/tcp(木馬Executor開放此埠);

HTTPS(securely transferring web pages)伺服器,預設的埠號為443/tcp 443/udp;

Telnet(不安全的文字傳送),預設埠號為23/tcp(木馬Tiny Telnet Server所開放的埠);

FTP,預設的埠號為21/tcp(木馬Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所開放的埠);

FTP(Trivial File Transfer Protocol),預設的埠號為69/udp;

SSH(安全登入)、SCP(檔案傳輸)、埠重定向,預設的埠號為22/tcp;

SMTP Simple Mail Transfer Protocol (E-mail),預設的埠號為25/tcp(木馬Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都開放這個埠;

POP3 Post Office Protocol (E-mail) ,預設的埠號為110/tcp;

WebLogic,預設的埠號為7001;

Webshpere應用程式,預設的埠號為9080;

webshpere管理工具,預設的埠號為9090;

JBOSS,預設的埠號為8080;

TOMCAT,預設的埠號為8080;

WIN2003遠端登陸,預設的埠號為3389;

Symantec AV/Filter for MSE,預設埠號為 8081;

Oracle 資料庫,預設的埠號為1521;

ORACLE EMCTL,預設的埠號為1158;

Oracle XDB(XML 資料庫),預設的埠號為8080;

Oracle XDB FTP服務,預設的埠號為2100;

MS SQL*SERVER資料庫server,預設的埠號為1433/tcp 1433/udp;

MS SQL*SERVER資料庫monitor,預設的埠號為1434/tcp 1434/udp;

總結:

http是HTTP協議執行在TCP之上。所有傳輸的內容都是明文,客戶端和伺服器端都無法驗證對方的身份。https是HTTP執行在SSL/TLS之上,SSL/TLS執行在TCP之上。所有傳輸的內容都經過加密,加密採用對稱加密,但對稱加密的金鑰用伺服器方的證書進行了非對稱加密。此外客戶端可以驗證伺服器端的身份,如果配置了客戶端驗證,伺服器方也可以驗證客戶端的身份。簡單來說,就是加密與不加密區別。比如在公共場所使用服務的時候,有https就用https。而http是明文傳輸的,如果有人抓到資料包,你在一個http request裡的資料都能見到。

歡迎加入  51軟體測試大家庭,在這裡你將獲得【最新行業資訊】,【免費測試工具安裝包】,【軟體測試技術乾貨】,【面試求職技巧】... 51與你共同學習,一起成長!期待你的加入: QQ                       群:                      755431660 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2219474/,如需轉載,請註明出處,否則將追究法律責任。

相關文章