TCP/IP协议之http与https通论

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: TCP/IP协议之http与https通论TCP/IP是传输层协议, http是应用层协议。web使用http协议作应用层协议,封装http明文数据,然后使用tcp/ip做传输层协议将它通过网络传输。
TCP/IP协议之http与https通论


TCP/IP是传输层协议, http是应用层协议。web使用http协议作应用层协议,封装http明文数据,然后使用tcp/ip做传输层协议将它通过网络传输。http协议以明文方式传输内容,不提供数据加密。https,安全套接字层超文本传输协议。https在http的基础上加入ssl(secure sockets layer 安全套接层)协议,ssl依靠证书来验证服务器的身份,并为客户端(client)和服务器(server)之间的通信加密。https是http下加入ssl层,https的安全基础是ssl。http直接用tcp进行数据传输,而https经过一层ssl,用的端口不一样,http是80,https是443。
https协议服务器须有数字证书,可以是自己制作或者ca(certificate authority)证书。自己颁发的证书需要客户端验证通过,才可以继续访问,使用ca证书则不会弹提提示窗。这套证书是一对公钥和私钥。公钥给别人加密使用,私钥给自己解密使用。公钥含了很多公开信息,如证书颁发机构,过期时间等。
客户使用https的url访问服务器,要求与web服务器建立ssl连接。客户端收到服务端证书后首先会验证公钥是否有效,比如颁发机构,过期时间等,如果发现异常,则会弹出窗警告,提示证书存在问题。如果证书没有问题,那么就生成一个随即值,然后用证书对该随机值进行加密。
客户端发给服务器端加密后的随机值,让服务端得到这个随机值,随后客户端和服务器端的通信就以这个随机值来加密解密。服务器端用私钥解密后,得到客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密。对称加密是将信息和私钥通过某种算法混合在一起,除非知道私钥,否则无法获取明文内容,而恰好客户端和服务器端都知晓此私钥,所以只要加密算法足够复杂和精巧,数据就够安全。此后,服务器端传输给客户端的信息,是服务器端用私钥加密后的信息,客户端可解密还原。
https协议的作用有二:
一,建立信息安全通道,来保证数据传输的安全;
二,确认服务器的合法性。服务器端从http切换到https需要把url链接由http改为https。作为兼容性考虑,一般服务器端支持http和http两种。https是现行架构下相对安全的解决方案,虽然不是绝对安全,但它大幅度增加了中间人攻击的成本。但是https协议握手阶段比较费时,https协议需要ca申请证书或自制证书,会使数据的加载时延变长。https缓存不如http高效,会增加额外开销和能耗。
http是明文传输,https报文组装成tcp报文时加密,https的header,以及body都被加密。https使用加密与hash算法:
对称加密算法:aes,rc4,3des。对称加密(encryption)与解密(decryption)用的是同样的密钥(secret key),对称加密优点是快、简单,效率高。
非对称加密算法:rsa,dsa/dss。非对称加密算法需要两个密钥:公开密钥(public key)和私有密钥(private key)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。最常用的非对称加密算法是RSA算法。
hash算法:md5,sha1,sha256。
相关文章
|
23天前
|
缓存 安全 网络协议
HTTP和HTTPS的区别有哪些?
本文简要总结了 HTTP 和 HTTPS 的区别,从概念、端口、连接方式、使用场景、安全性等多个角度进行了对比。HTTP 是无状态的、无连接的应用层协议,适用于一般性网站和性能要求较高的应用;HTTPS 则通过 SSL/TLS 层提供加密、认证和完整性保护,适用于涉及敏感信息和高安全性的场景。文章还讨论了两者在性能上的差异,包括握手和加密开销、缓存效果以及 HTTP/2 的多路复用技术。最终,根据具体需求选择合适的协议能够更好地平衡安全性和性能。
78 2
HTTP和HTTPS的区别有哪些?
|
8天前
|
前端开发 JavaScript 安全
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
19 2
|
7天前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
33 13
|
5天前
|
开发者
HTTP 协议请求方法的发展历程
【10月更文挑战第21天】
|
5天前
|
安全
HTTP 协议的请求方法
【10月更文挑战第21天】
|
5天前
|
缓存 安全 前端开发
HTTP 协议的请求方法在实际应用中有哪些注意事项?
【10月更文挑战第29天】HTTP协议的请求方法在实际应用中需要根据具体的业务场景和需求,合理选择和使用,并注意各种方法的特点和限制,以确保网络通信的安全、高效和数据的一致性。
|
7天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
8天前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
9天前
|
前端开发 安全 应用服务中间件
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第26天】随着互联网的快速发展,前端性能调优成为开发者的重要任务。本文探讨了HTTP/2与HTTPS在前端性能优化中的应用,介绍了二进制分帧、多路复用和服务器推送等特性,并通过Nginx配置示例展示了如何启用HTTP/2和HTTPS,以提升Web应用的性能和安全性。
15 3
|
10天前
|
前端开发 JavaScript 数据库
https页面加载http资源的解决方法
https页面加载http资源的解决方法
29 4

热门文章

最新文章