您好,登录后才能下订单哦!
背景: 谷歌在 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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。