http协议和websocket协议的区别

1. 介绍

websocket和http都属于应用层协议,网络层都基于TCP协议。

PS:

虽然TCP协议是全双工的协议,但是应用层不一定是全双工的(看具体实现)

websocket和socket是两个东西:Socket是一个针对TCP和UDP编程的接口。应用程序通过它来发送和接收数据,借助它建立TCP连接等等。这里需要重点说明的,socket不是一个协议,只是一个编程接口。当然,websocket也用到了socket接口来实现其协议。

2. websocket

websocket的特点主要如下:

全双工协议:http协议基于请求应答,现在只能做单向传输......

POST常见请求方式浅析

1.概览

1.1 POST 常见请求类型图表一览

编码类型

说明

适用场景

application/x-www-form-urlencoded

窗体数据被编码为名称/值对。这是标准的编码格式。form表单默认就是这种方式

适合字符传输

multipart/form-data

窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分。

不对字符编码,二进制传输,适合非字符和二进制,比如包含窗体

text/plain

窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。

纯文本

application/json

处理json字符串

方便提交非结构化数据

......

TCP协议中使用滑动窗口实现流量控制

1. 为什么使用流量控制

发送方过快地发送数据导致接受方来不及接收。所以要通过流量控制让发送方发送的速度不要太快。

2. 拥塞控制与流量控制

2.1 拥塞控制

拥塞:请求资源大于网络可用资源,就发生拥塞导致网络性能下降。(单纯增加资源可能使得情况更坏)

拥塞控制:防止过多的数据注入到网络,是一个全局性的问题。

2.2 流量控制

流量控制往往指的是点对点的通信量的控制,是一个端到端的问题。

3.拥塞控制的方法一(慢开始和拥塞避免),Tahoe版本

为了集中精力讨论拥塞控制,先做以下的假定:

数据是单方向传送,另一个方向只传送确认

接收方总是有足够大......