这次在考安全笔试的时候遇到一个题有关HTTP的,问的是最安全的HTTP选项是哪一个,其中有两个选项一开始捉摸不定,即HTTPs和S-HTTP,前者的全称为Hyper Text Transfer Protocol over Secure Socket Layer,后者的全称为Secure Hypertext Transfer Protocol。
按照wiki上查阅的资料而言,S-HTTP和HTTPS都是在90年代中期所推出,由于HTTPS是由Netscape所开发,相对于S-HTTP,其更受一些主流厂家的推崇。S-HTTP和HTTPS的主要区别貌似是在于S-HTTP 是工作于应用层的协议,而HTTPS是在传输层使用SSL的HTTP。在WIKI的解释大致简略如下,基本是S-HTTP仅仅提供了数据的加密机制,比如服务页面的数据,以及用户提交的数据(比如post),其余的协议部分是和原来HTTP是一样的。因此,S-HTTP是可以和传统的HTTP(未加密)同时使用,并且采用同一个端口号的。
而在HTTPS中,由于整个通信过程都是基于SSL的,即加密时在任何协议数据被传输之前就开始建立的。故HTTPS需要一个单独的端口号(比如HTTP是80,而HTTPS是443)。详细一些的理解还是查阅wiki好一些(https://en.wikipedia.org/wiki/Secure_Hypertext_Transfer_Protocol)。