HTTP与HTTPS
从安全性和效率性进行阐述:
对于HTTP
HTTP默认端口是80
HTTP是明文传输,数据以纯文本、明文形式在网络上传输,容易受到黑客的攻击和数据窃取。
对于HTTPS
HTTPS默认端口是443
HTTPS用的是SSL或者TLS协议对数据进行加密,防止数据被窃听和篡改。它的加密方式是对称加密和非对称加密相结合。
并且HTTPS需要建立连接的服务器具有第三方认证机构颁发的证书。
HTTPS采用数字证书签名验证服务器的身份的方式,确保用户与正确的网站建立连接,减少中间人攻击的风险。并且HTTPS使用校验机制,确保数据在传输过程中未被篡改,保持完整性。
由于加密解密过程的存在,会增加客户端和服务端的负担。但是这些影响对现代的网络设备来说已经可以大大减轻了。
poll和epoll
主要从几个方面阐述:
epoll相对于传统的poll系统调用在以下几个方面进行了优化:
1.扩展性:epoll使用事件驱动的方式,可以同时管理大量的文件描述符(例如套接字),并能够高效地处理大规模的并发连接。相比之下,poll在处理大量文件描述符时效率较低。
2.高效的事件通知机制:在传统的poll中,每次调用都需要遍历所有的文件描述符来检查是否有事件发生。而epoll使用了回调机制,只有当文件描述符上发生了感兴趣的事件时,才会通知应用程序,避免了遍历所有文件描述符的开销。
3.内核空间与用户空间数据复制:在传统的poll中,需要将所有准备好的事件拷贝到用户空间,这会带来额外的开销。而epoll利用了内存映射(mmap)技术,将准备好的事件直接存储在内核空间的缓冲区中,从而避免了数据复制的开销。
4.边缘触发模式:epoll提供了边缘触发(Edge Triggered)的工作模式,即当状态变化时才通知应用程序,而不是在事件就绪时一直通知。这种模式可以减少不必要的触发,提高了处理效率。
5.更详细的事件类型:epoll提供了更多精细化的事件类型,例如可读、可写、错误等,相比之下,传统的poll只提供了可读和可写两种事件类型。
综上所述,epoll相较于poll在扩展性、高效的事件通知机制、数据复制优化、边缘触发模式以及更详细的事件类型方面进行了优化。这些优化使得epoll在处理高并发连接时表现更出色,成为现代操作系统中网络编程的重要工具