网络协议总结

100 阅读3分钟

「这是我参与11月更文挑战的第6天,活动详情查看:2021最后一次更文挑战

常见的网络传输协议有http(超文本传输协议)协议、https协议还有websocket协议等

http协议定义及特点:

定义:

http协议是用于从万维网服务器传输超文本到本地浏览器的传送协议,是一个基于TCP/IP通信协议来传递数据的建立在应用层的面向对象的协议。

特点:

  1. 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记
  2. 支持客户/服务器模式。
  3. 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。
  4. 无连接:每次请求一次,释放一次连接。
  5. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。

https协议与http协议的区别:

由于http报文在传输过程中是明文的,可以通过抓包的方式看到报文内容,这就暴露一个安全问题,易被劫持篡改。所以为了解决这个问题,就有了 TLS

补充:TLS:安全传输层协议,用于在两个通信应用程序之间提供数据完整性和保密性

区别:

  1. http和 https使用的是完全不同的连接方式,用的默认端口也不一样,前者端口号是80,后者端口号是443。
  2. http是超文本传输协议,信息是明文传输, 而https则是具有安全性的ssl加密传输协议。
  3. http的连接很简单,是无状态的;但是https协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,所以比http协议安全。

WebSocket协议

WebSocket协议是一种在单个TCP连接上进行全双工通信的协议,WebSocket协议使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并且进行双向数据传输。

WebSocket协议与http协议的区别:

http 协议通信只能由客户端发起。

由于http协议是单向的,只能是客户端向服务器发出请求,服务器返回查询结果。所以http协议做不到服务器主动向客户端推送信息。

如果要想与服务端实时通信,只能通过AJAX轮询和Long Polling长轮询等开销大影响性能的方式。

而WebSocket协议服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息。

特点:

  1. 与 http 协议有着良好的兼容性。 WebSocket协议默认端口也是80和443,并且握手阶段采用 http 协议,因此握手时不容易屏蔽,能通过各种 http 代理服务器。
  2. WebSocket协议建立在 TCP 协议之上,服务器端的实现比较容易。
  3. WebSocket协议标识符是ws(加密为wss),服务器网址就是 URL。
  4. 没有同源限制,客户端可以与任意服务器通信。
  5. 可以发送文本,也可以发送二进制数据。
  6. 数据格式比较轻量,性能开销小,通信高效。