http与https、它们之间的区别
-
http: 超文本传输协议,是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
-
https: 是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。https协议的主要作用是:建立一个信息安全通道,来确保数组的传输,确保网站的真实性。
-
http和https的区别?
1.Https协议需要ca证书,费用较高。
2.http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3.使用不同的链接方式,端口也不同,一般而言,http协议的端口为80,https的端口为443
4.http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
tcp三次握手与四次挥手
- SYN:请求连接标志,表示服务器端同意建立连接。
- ACK:确认报文,表示告诉客户端,服务器端收到了它的请求报文。
- SEQ:用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。
- FIN:释放连接报文。
- 问题:
1.为什么要进行第三次握手?
2.为什么“握手”是三次,“挥手”却要四次?
3.为什么客户端在TIME-WAIT阶段要等2MSL?
WebSocket的实现和应用
WebSocket是HTML5中的协议,支持持久连续,http协议不支持持久性连接。Http1.0和HTTP1.1都不支持持久性的链接,HTTP1.1中的keep-alive,将多个http请求合并为1个,WebSocket是基于Http协议的,或者说借用了Http协议来完成一部分握手,在握手阶段与Http是相同的。我们来看一个websocket握手协议的实现,基本是2个属性,upgrade,connection。
-
既然http无法满足用户的所有需求,那么为之诞生的websocket必然有其诸多应用场景。如:
1.实时显示网站在线人数
2.账户余额等数据的实时更新
3.多玩家网络游戏
4.多媒体聊天,如聊天室 -
nodejs实现
HTTP请求的方式
- head:类似于get请求,只不过返回的响应中没有具体的内容,用户获取报头
- options:允许客户端查看服务器的性能,比如说服务器支持的请求方式等等。