您好,登錄后才能下訂單哦!
背景: 谷歌在 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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。