ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

HTTP 和 HTTPS 有什么区别?

HTTP 和 HTTPS 有什么区别? HTTP 和 HTTPS 的区别面试MarkdownHTTPS HTTP TLS/SSL在HTTP和TCP中间增加一层TLS加密。核心区别安全层面最关键HTTP明文传输数据裸奔。抓包可以直接看到请求参数、响应内容容易被窃听、篡改、中间人攻击。HTTPSTLS加密传输传输数据是密文。防止窃听、篡改校验身份抵御中间人攻击。端口不同HTTP默认80端口HTTPS默认443端口握手流程不同HTTP直接TCP三次握手之后就传输HTTP报文。HTTPSTCP三次握手完成后还要进行TLS握手协商加密套件、交换证书、生成会话密钥之后才加密传输业务数据。性能开销HTTP握手简单没有加解密开销。HTTPSTLS握手多一轮RTT同时客户端、服务端需要做加解密运算会消耗少量CPU现在会话复用可以降低握手开销。证书HTTP不需要证书。HTTPS需要CA颁发的数字证书用来证明服务器身份防止伪装服务器。浏览器标识HTTP地址栏不安全警告。HTTPS小锁标识。TLS握手简单流程面试简要客户端发送支持的加密套件服务端返回证书、选定加密套件客户端校验证书合法性双方协商生成会话密钥后续所有HTTP报文使用会话密钥对称加密传输小知识点非对称加密只用来协商密钥真正业务数据用对称加密传输非对称加密运算慢不会用来加密大报文。常见面试追问QHTTPS能完全保证安全吗不能。如果证书被盗、使用自签名证书、证书被伪造中间人攻击依然有可能发生。HTTPS只保证传输过程加密业务本身逻辑漏洞SQL注入、XSS它管不了。QHTTPS防什么不防什么✅防传输窃听、报文篡改、中间人伪装服务器❌不防业务漏洞、客户端本身泄露数据、钓鱼网站骗取用户主动输入信息。口述面试版HTTP是明文协议端口80传输的数据可以被抓包窃听篡改HTTPS就是HTTP加上TLS加密层端口443。HTTPS需要数字证书校验服务器身份通过非对称加密协商密钥业务数据使用对称加密传输。代价是多一次TLS握手有少量CPU加解密开销。要注意HTTPS解决传输链路安全但是无法解决业务代码层面的安全漏洞。补充HTTP2 基本都运行在HTTPS之上。
返回列表