小心!網購支付頁面字首應是https不是http!三大區別總結!
背景:谷歌在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