1. http与socket的区别,两个协议哪个更高效一点?
创建socket连接时,可以指定使用的传输层协议,socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该socket连接就是一个TCP连接。socket连接一旦建立,通信双方即可开始相互发送数据内容, 直到双方连接断开。注意,同HTTP不同的是http只能基于tcp,socket不仅能走tcp,而且还能走udp,这个是socket的第一个特点。
HTTP连接使用的是“请求-响应”的方式,不仅在请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务端才能回复数据。
很多情况下,需要服务器端主动向客户端推送数据,保持客户端与服务器数据的实时与同步,此时若双方建立的是socket连接,服务器就可以直接将数据传送给客户端;若双方建立的是HTTP连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端。
Socket效率高,至少不用解析http报文头部一些字段。
2. HTTP与HTTPS的区别?
- https更安全
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。http是超文本传输协议,信息是明文传输,没有加密,通过抓包工具可以分析其信息内容。
-
https需要申请证书
https协议需要到CA申请证书,一般免费证书很少,需要交费。而常见的http协议则没有这一项。
-
端口不同
http使用的是80端口,而https使用的是443端口。
-
所在层次不同
http协议运行在TCP之上,而https是运行在SSL/TLS之上的http协议,SSL/TLS运行在TCP之上。