小心!網購支付頁面字首應是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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2219474/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 什麼是HTTP? HTTP 和 HTTPS 的區別?HTTP
- [前端 · 面試 ]HTTP 總結(十一)—— HTTPS 概述前端面試HTTP
- 什麼是HTTPS證書?HTTP與HTTPS的區別HTTP
- http和https有何區別?恆訊科技總結這11點HTTP
- .NET面試題(29) http和https的區別面試題HTTP
- HTTP 與 HTTPS 的區別HTTP
- http和https的區別HTTP
- http與https的區別HTTP
- http和https的區別?HTTP
- HTTPS 和 HTTP 的區別HTTP
- HTTPS和HTTP的區別HTTP
- HTTPS 和 HTTP 的主要區別HTTP
- HTTP和HTTPS有哪些區別?HTTP
- SSL證書是什麼?HTTP和HTTPS的區別HTTP
- HTTP和HTTPS是什麼 二者區別是什麼HTTP
- HTTP和HTTPS有什麼區別?如何實現網站的HTTPS?HTTP網站
- HTTP和HTTPS有什麼區別?HTTP
- HTTP和HTTPS的區別有哪些?HTTP
- http和https的區別/get和post的區別HTTP
- 【前端 · 面試 】HTTP 總結(十)—— HTTP 快取應用前端面試HTTP快取
- [前端 · 面試 ]HTTP 總結(十)—— HTTP 快取應用前端面試HTTP快取
- 前端面試http和https的區別前端面試HTTP
- HTTP1.0,HTTP1.1,HTTPS和HTTP2.0的區別HTTP
- https與http區別以及https資料加密解密過程HTTP加密解密
- http與https的區別我真的知道嗎HTTP
- HTTP和HTTPS有什麼主要的區別?HTTP
- [前端 · 面試 ]HTTP 總結(一)—— HTTP 概述前端面試HTTP
- HTTP 協議知識點總結(二)HTTPSHTTP協議
- https頁面載入http資源的解決方法HTTP
- HTTP與HTTPS代理有何區別?HTTP工作流程介紹HTTP
- 谷歌瀏覽器又開始隱藏網址的HTTP/HTTPS/WWW字首谷歌瀏覽器HTTP
- [前端 · 面試 ]HTTP 總結(二)—— HTTP 訊息前端面試HTTP
- https 下分頁生成的連結 http 解決方法HTTP
- 9、http隧道、https、SSL層、http代理、線上代理、socks代理區別HTTP
- HTTP 和 HTTPS 之間除了安全性區別外,還有哪些區別HTTP
- 簡單介紹HTTP與HTTPS之間的區別HTTP
- [前端 · 面試 ]HTTP 總結(四)—— HTTP 狀態碼前端面試HTTP
- [前端 · 面試 ]HTTP 總結(三)—— HTTP 請求方法前端面試HTTP