WebSocket协议和HTTP协议

WebSocket

  1. 为什么使用

举个例子来说:想了解今天的天气,只能是客户端想服务器发出请求,服务器返回查询结果。HTTP协议做不到服务器主动向客户端推送信息(HTTP协议缺陷:通信只能由客户端发起)。
这种单向请求的特点,注定了如果服务器有连续的状态变化,客户端要获知就非常麻烦。只能使用“轮询”:每隔一段时间,就发出一个询问,了解服务器有没有新的信息。
但是轮询的效率低,非常浪费资源(因为必须不停的连接,或者HTTP连接始终打开)

  1. UDP和TCP协议的概念

TCP

  1. 是一种面向连接、可靠、基于字节流的传输协议;TCP会事先为所发送的数据开辟出连接好的通道,然后再进行数据发送。
  2. 面向连接:不同于UDP,TCP协议需要通信双方确定彼此已经建立连接后才能进行数据传输。
  3. 可靠:连接建立的双方再进行通信时,TCP保证了不会存在数据丢失,或是数据丢失后存在拯救丢失的措施。
  4. 字节流:实际传输中,不论是何种数据,TCP都按照字节的方式传输,而非以数据包为单位。
    UDP
  5. UDP是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务
  6. 提供了无连接通信,而且不对传送数据包进行可靠性保证,适合于一次传输少量数据
  7. 正因为UDP协议的控制选项较少,再数据传输过程中延迟小、数据传输效率高

一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。

  1. ACK:确认序号有效
  2. SYN:发送一个新连接
  3. Seq:字节流数据

TCP三次握手

  1. 什么是WebSocket

WebSocket是H5一种新的协议,WebSocket是真正实现了全双工通信的服务器向客户端推送的互联网技术,是一种再单个TCP连接上进行全双工通讯协议。

  1. 全双工通讯协议的概念

全双工是通讯传输的一个术语。通信允许数据再两个方向上同时传输,他在能力上相当于两个单工通信方式的结合;全双工指可以同时进行信号的双向传输。

  1. 全双工:例如我们使用的手机就是全双工,再同一时刻两个用户可以同时给对方传送数据
  2. 半双工:例如我们使用的对讲机,当A方按住通话按钮才可以向B方传送数据,B方也是,再同一时刻只有一个用户能够传送数据。
  3. 单工:例如我们看电视时,我们只能接收对方发送的信息,不能够给对方传递信息;
  1. WebSocket和Socket的区别是什么

Socket是应用层于TCP/IP协议通信的中间软件抽象层,它是一组接口。
WebSocket是一个完整的应用层协议,包含一套标准的API。

  1. HTTP与WebSocket的区别

HTTP协议是短链接,因为请求之后,都会关闭连接,下次重新请求数据,需要再次打开连接。
WebSocket协议是一种长连接,只需要通过一次请求来初始化连接,然后所有的请求和响应都是通过这个TCP链接进行通信

HTTP

  1. HTTP和HTTPS的区别
  1. HTTP的URL以http://开头;而HTTPS的URL以https://开头
  2. HTTP是不安全的,而HTTPS是安全的
  3. HTTP标准端口是80,而HTTPS的标准端口是443
  4. HTTP无法加密,而HTTPS对传输的数据进行加密
  5. HTTP无需证书,而HTTPS需要SSL证书
  1. 什么是HTTP协议无状态协议?怎么解决

无状态协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息
(即当客户端一次HTTP请求完成后,客户端再发送一次HTTP请求,HTTP并不知道当前客户端是个“老用户”)
解决:可以使用cookie来解决无状态的问题,cookie就相当于一个通行证,第一次访问的时候给客户端发送一个cookie,当客户端再次来的时候,拿着cookie(通行证),那么服务器就知道这个是“老用户”。

  1. URI和URL的区别

URI全称为统一资源标识符,是一个用于标识某一互联网资源名称的字符串。该标识允许用户对任何的资源通过特定的协议进行交互操作。

三部分组成:

  1. 访问资源的命名机制
  2. 存放资源的主机名
  3. 资源自身的名称

URL全称为统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种见解的表示,是互联网上标准资源的地址。(互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。)

三部分组成:

  1. 协议
  2. 存有该资源的主机IP地址
  3. 主机资源的具体地址
  1. 常用的HTTP方法有哪些
  1. GET:用于请求访问已经被URI识别的资源,可以通过URL传参给服务器
  2. POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式
  3. PUT:传输文件,保温主体中包含文件内容,保存到对应URI位置。
  4. HEAD:获得报文首部,与GET方法类似,只是不返回报文主题,一般用于验证URI是否有效。
  5. DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件
  6. OPTIONS:查询响应URI支持的HTTP方法。
  1. 常见的HTTP相应状态码
  1. 200:请求被正常处理
  2. 204:请求被受理但没有资源可以返回
  3. 206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法
  4. 301:永久性重定向
  5. 302:临时重定向
  6. 303:与302状态码有相似功能,只是它希望客户端再请求一个URI的时候,能通过GET方法重定向到另一个URI上
  7. 304:发送附带条件的请求时,条件不满足时返回,与重定向无关
  8. 307:临时重定向,与302类似,只是强制要求使用POST方法
  9. 400:请求报文语法有误,服务器无法识别
  10. 401:请求需要认证
  11. 403:请求的对应资源被访问
  12. 404:服务器无法找到对应资源
  13. 500:服务器内部错误
  14. 503:服务器正忙
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值